orchestro.orche.params package#

Submodules#

orchestro.orche.params.child module#

Functions and routines associated with Enasis Network Orchestrations.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class orchestro.orche.params.child.OrcheChildParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enable: bool = False, inherits: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, display: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, about: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, memberof: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>)[source]#

Bases: OrcheParamsModel

Process and validate the Orche configuration parameters.

about: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Additional optional information', metadata=[MinLen(min_length=1)])]#
display: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Friendly name value for child', metadata=[MinLen(min_length=1)])]#
enable: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Determine whether child enabled')]#
inherits: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Other configuration to inherit', metadata=[MinLen(min_length=1)])]#
kvopaque: Annotated[dict[str, Any], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', metadata=[MinLen(min_length=0)])]#
kvparsed: Annotated[dict[str, Any], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', metadata=[MinLen(min_length=0)])]#
memberof: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Groups child is a member of', metadata=[MinLen(min_length=1)])]#
model_config = {'extra': 'forbid'}#

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

orchestro.orche.params.common module#

Functions and routines associated with Enasis Network Homie Automate.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class orchestro.orche.params.common.OrcheParamsModel[source]#

Bases: BaseModel

Process and validate the Homie configuration parameters.

model_config = {'extra': 'forbid'}#

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

orchestro.orche.params.group module#

Functions and routines associated with Enasis Network Orchestrations.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class orchestro.orche.params.group.OrcheGroupAnsibleParams(**extra_data: Any)[source]#

Bases: OrcheParamsModel

Process and validate the Orche configuration parameters.

model_config = {'extra': 'allow'}#

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

class orchestro.orche.params.group.OrcheGroupParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enable: bool = False, inherits: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, display: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, about: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, memberof: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, realm: ~typing.Literal['domain', 'local', 'site', 'zone', 'ansible', 'psuedo'] = 'ansible', ansible: ~orchestro.orche.params.group.OrcheGroupAnsibleParams | None = None)[source]#

Bases: OrcheChildParams

Process and validate the Orche configuration parameters.

about: Annotated[str | None, Field(None, description='Additional optional information', min_length=1)]#
ansible: Annotated[OrcheGroupAnsibleParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Variables provided to Ansible')]#
display: Annotated[str | None, Field(None, description='Friendly name value for child', min_length=1)]#
enable: Annotated[bool, Field(False, description='Determine whether child enabled')]#
inherits: Annotated[list[str] | None, Field(None, description='Other configuration to inherit', min_length=1)]#
kvopaque: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', min_length=0)]#
kvparsed: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', min_length=0)]#
memberof: Annotated[list[str] | None, Field(None, description='Groups child is a member of', min_length=1)]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

realm: Annotated[Literal['domain', 'local', 'site', 'zone', 'ansible', 'psuedo'], FieldInfo(annotation=NoneType, required=False, default='ansible', description='Logical realm for the object')]#

orchestro.orche.params.orche module#

Functions and routines associated with Enasis Network Orchestrations.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class orchestro.orche.params.orche.OrcheParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enconfig: ~encommon.config.params.ConfigParams | None = None, enlogger: ~encommon.config.params.LoggerParams | None = None, encrypts: ~encommon.crypts.params.CryptsParams | None = None, database: ~typing.Annotated[str, ~annotated_types.MinLen(min_length=1)] = 'sqlite:///:memory:', dryrun: bool = False, systems: ~typing.Annotated[dict[str, ~orchestro.orche.params.system.OrcheSystemParams] | None, ~annotated_types.MinLen(min_length=1)] = None, persons: ~typing.Annotated[dict[str, ~orchestro.orche.params.person.OrchePersonParams] | None, ~annotated_types.MinLen(min_length=1)] = None, subnets: ~typing.Annotated[dict[str, ~orchestro.orche.params.subnet.OrcheSubnetParams] | None, ~annotated_types.MinLen(min_length=1)] = None, groups: ~typing.Annotated[dict[str, ~orchestro.orche.params.group.OrcheGroupParams] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>)[source]#

Bases: Params

Process and validate the core configuration parameters.

database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])]#
dryrun: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Determine if changes applied')]#
enconfig: Annotated[ConfigParams | None, Field(None, description='Parameters for Config instance')]#
encrypts: Annotated[CryptsParams | None, Field(None, description='Parameters for Crypts instance')]#
enlogger: Annotated[LoggerParams | None, Field(None, description='Parameters for Logger instance')]#
groups: Annotated[dict[str, OrcheGroupParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Orche groups', metadata=[MinLen(min_length=1)])]#
kvopaque: Annotated[dict[str, Any], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', metadata=[MinLen(min_length=0)])]#
kvparsed: Annotated[dict[str, Any], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', metadata=[MinLen(min_length=0)])]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

persons: Annotated[dict[str, OrchePersonParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Orche persons', metadata=[MinLen(min_length=1)])]#
subnets: Annotated[dict[str, OrcheSubnetParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Orche subnets', metadata=[MinLen(min_length=1)])]#
systems: Annotated[dict[str, OrcheSystemParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Orche systems', metadata=[MinLen(min_length=1)])]#

orchestro.orche.params.person module#

Functions and routines associated with Enasis Network Orchestrations.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class orchestro.orche.params.person.OrchePersonParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enable: bool = False, inherits: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, display: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, about: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, memberof: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, realm: ~typing.Literal['domain', 'local', 'psuedo'] = 'psuedo', domain: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, first: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, last: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None)[source]#

Bases: OrcheChildParams

Process and validate the Orche configuration parameters.

about: Annotated[str | None, Field(None, description='Additional optional information', min_length=1)]#
display: Annotated[str | None, Field(None, description='Friendly name value for child', min_length=1)]#
domain: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Domain to which child belongs', metadata=[MinLen(min_length=1)])]#
enable: Annotated[bool, Field(False, description='Determine whether child enabled')]#
first: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='First name for person account', metadata=[MinLen(min_length=1)])]#
inherits: Annotated[list[str] | None, Field(None, description='Other configuration to inherit', min_length=1)]#
kvopaque: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', min_length=0)]#
kvparsed: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', min_length=0)]#
last: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Last name for person account', metadata=[MinLen(min_length=1)])]#
memberof: Annotated[list[str] | None, Field(None, description='Groups child is a member of', min_length=1)]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

realm: Annotated[Literal['domain', 'local', 'psuedo'], FieldInfo(annotation=NoneType, required=False, default='psuedo', description='Logical realm for the object')]#

orchestro.orche.params.subnet module#

Functions and routines associated with Enasis Network Orchestrations.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class orchestro.orche.params.subnet.OrcheSubnetParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enable: bool = False, inherits: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, display: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, about: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, memberof: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, subnet: ~typing.Annotated[str, ~annotated_types.MinLen(min_length=1)], macpref: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=2), ~annotated_types.MaxLen(max_length=2), _PydanticGeneralMetadata(pattern='^[\\da-fA-F]+$')] = None, gateway: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, resolve: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, ntpsync: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None)[source]#

Bases: OrcheChildParams

Process and validate the Orche configuration parameters.

about: Annotated[str | None, Field(None, description='Additional optional information', min_length=1)]#
display: Annotated[str | None, Field(None, description='Friendly name value for child', min_length=1)]#
enable: Annotated[bool, Field(False, description='Determine whether child enabled')]#
gateway: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Optional gateway for the subnet', metadata=[MinLen(min_length=1)])]#
inherits: Annotated[list[str] | None, Field(None, description='Other configuration to inherit', min_length=1)]#
kvopaque: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', min_length=0)]#
kvparsed: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', min_length=0)]#
macpref: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Optional prefix for MAC address', metadata=[MinLen(min_length=2), MaxLen(max_length=2), _PydanticGeneralMetadata(pattern='^[\\da-fA-F]+$')])]#
memberof: Annotated[list[str] | None, Field(None, description='Groups child is a member of', min_length=1)]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

ntpsync: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Optional NTP server for subnet', metadata=[MinLen(min_length=1)])]#
resolve: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Optional resolvers for subnet', metadata=[MinLen(min_length=1)])]#
subnet: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='IPv4 or IPv6 network subnet', metadata=[MinLen(min_length=1)])]#

orchestro.orche.params.system module#

Functions and routines associated with Enasis Network Orchestrations.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class orchestro.orche.params.system.OrcheSystemAnsibleParams(**extra_data: Any)[source]#

Bases: OrcheParamsModel

Process and validate the Orche configuration parameters.

model_config = {'extra': 'allow'}#

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

class orchestro.orche.params.system.OrcheSystemParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enable: bool = False, inherits: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, display: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, about: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, memberof: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, realm: ~typing.Literal['ansible', 'psuedo'] = 'ansible', domain: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, ansible: ~orchestro.orche.params.system.OrcheSystemAnsibleParams | None = None)[source]#

Bases: OrcheChildParams

Process and validate the Orche configuration parameters.

about: Annotated[str | None, Field(None, description='Additional optional information', min_length=1)]#
ansible: Annotated[OrcheSystemAnsibleParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Variables provided to Ansible')]#
display: Annotated[str | None, Field(None, description='Friendly name value for child', min_length=1)]#
domain: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Domain to which child belongs', metadata=[MinLen(min_length=1)])]#
enable: Annotated[bool, Field(False, description='Determine whether child enabled')]#
inherits: Annotated[list[str] | None, Field(None, description='Other configuration to inherit', min_length=1)]#
kvopaque: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', min_length=0)]#
kvparsed: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', min_length=0)]#
memberof: Annotated[list[str] | None, Field(None, description='Groups child is a member of', min_length=1)]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

realm: Annotated[Literal['ansible', 'psuedo'], FieldInfo(annotation=NoneType, required=False, default='ansible', description='Logical realm for the object')]#

Module contents#

Functions and routines associated with Enasis Network Orchestrations.

This file is part of Enasis Network software eco-system. Distribution is permitted, for more information consult the project license file.

class orchestro.orche.params.OrcheChildParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enable: bool = False, inherits: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, display: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, about: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, memberof: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>)[source]#

Bases: OrcheParamsModel

Process and validate the Orche configuration parameters.

about: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Additional optional information', metadata=[MinLen(min_length=1)])]#
display: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Friendly name value for child', metadata=[MinLen(min_length=1)])]#
enable: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Determine whether child enabled')]#
inherits: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Other configuration to inherit', metadata=[MinLen(min_length=1)])]#
kvopaque: Annotated[dict[str, Any], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', metadata=[MinLen(min_length=0)])]#
kvparsed: Annotated[dict[str, Any], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', metadata=[MinLen(min_length=0)])]#
memberof: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Groups child is a member of', metadata=[MinLen(min_length=1)])]#
model_config = {'extra': 'forbid'}#

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

class orchestro.orche.params.OrcheGroupParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enable: bool = False, inherits: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, display: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, about: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, memberof: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, realm: ~typing.Literal['domain', 'local', 'site', 'zone', 'ansible', 'psuedo'] = 'ansible', ansible: ~orchestro.orche.params.group.OrcheGroupAnsibleParams | None = None)[source]#

Bases: OrcheChildParams

Process and validate the Orche configuration parameters.

about: Annotated[str | None, Field(None, description='Additional optional information', min_length=1)]#
ansible: Annotated[OrcheGroupAnsibleParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Variables provided to Ansible')]#
display: Annotated[str | None, Field(None, description='Friendly name value for child', min_length=1)]#
enable: Annotated[bool, Field(False, description='Determine whether child enabled')]#
inherits: Annotated[list[str] | None, Field(None, description='Other configuration to inherit', min_length=1)]#
kvopaque: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', min_length=0)]#
kvparsed: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', min_length=0)]#
memberof: Annotated[list[str] | None, Field(None, description='Groups child is a member of', min_length=1)]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

realm: Annotated[Literal['domain', 'local', 'site', 'zone', 'ansible', 'psuedo'], FieldInfo(annotation=NoneType, required=False, default='ansible', description='Logical realm for the object')]#
class orchestro.orche.params.OrcheParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enconfig: ~encommon.config.params.ConfigParams | None = None, enlogger: ~encommon.config.params.LoggerParams | None = None, encrypts: ~encommon.crypts.params.CryptsParams | None = None, database: ~typing.Annotated[str, ~annotated_types.MinLen(min_length=1)] = 'sqlite:///:memory:', dryrun: bool = False, systems: ~typing.Annotated[dict[str, ~orchestro.orche.params.system.OrcheSystemParams] | None, ~annotated_types.MinLen(min_length=1)] = None, persons: ~typing.Annotated[dict[str, ~orchestro.orche.params.person.OrchePersonParams] | None, ~annotated_types.MinLen(min_length=1)] = None, subnets: ~typing.Annotated[dict[str, ~orchestro.orche.params.subnet.OrcheSubnetParams] | None, ~annotated_types.MinLen(min_length=1)] = None, groups: ~typing.Annotated[dict[str, ~orchestro.orche.params.group.OrcheGroupParams] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>)[source]#

Bases: Params

Process and validate the core configuration parameters.

database: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='sqlite:///:memory:', description='Database connection string', metadata=[MinLen(min_length=1)])]#
dryrun: Annotated[bool, FieldInfo(annotation=NoneType, required=False, default=False, description='Determine if changes applied')]#
enconfig: Annotated[ConfigParams | None, Field(None, description='Parameters for Config instance')]#
encrypts: Annotated[CryptsParams | None, Field(None, description='Parameters for Crypts instance')]#
enlogger: Annotated[LoggerParams | None, Field(None, description='Parameters for Logger instance')]#
groups: Annotated[dict[str, OrcheGroupParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Orche groups', metadata=[MinLen(min_length=1)])]#
kvopaque: Annotated[dict[str, Any], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', metadata=[MinLen(min_length=0)])]#
kvparsed: Annotated[dict[str, Any], FieldInfo(annotation=NoneType, required=False, default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', metadata=[MinLen(min_length=0)])]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

persons: Annotated[dict[str, OrchePersonParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Orche persons', metadata=[MinLen(min_length=1)])]#
subnets: Annotated[dict[str, OrcheSubnetParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Orche subnets', metadata=[MinLen(min_length=1)])]#
systems: Annotated[dict[str, OrcheSystemParams] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Parameters for Orche systems', metadata=[MinLen(min_length=1)])]#
class orchestro.orche.params.OrcheParamsModel[source]#

Bases: BaseModel

Process and validate the Homie configuration parameters.

model_config = {'extra': 'forbid'}#

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

class orchestro.orche.params.OrchePersonParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enable: bool = False, inherits: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, display: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, about: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, memberof: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, realm: ~typing.Literal['domain', 'local', 'psuedo'] = 'psuedo', domain: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, first: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, last: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None)[source]#

Bases: OrcheChildParams

Process and validate the Orche configuration parameters.

about: Annotated[str | None, Field(None, description='Additional optional information', min_length=1)]#
display: Annotated[str | None, Field(None, description='Friendly name value for child', min_length=1)]#
domain: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Domain to which child belongs', metadata=[MinLen(min_length=1)])]#
enable: Annotated[bool, Field(False, description='Determine whether child enabled')]#
first: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='First name for person account', metadata=[MinLen(min_length=1)])]#
inherits: Annotated[list[str] | None, Field(None, description='Other configuration to inherit', min_length=1)]#
kvopaque: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', min_length=0)]#
kvparsed: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', min_length=0)]#
last: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Last name for person account', metadata=[MinLen(min_length=1)])]#
memberof: Annotated[list[str] | None, Field(None, description='Groups child is a member of', min_length=1)]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

realm: Annotated[Literal['domain', 'local', 'psuedo'], FieldInfo(annotation=NoneType, required=False, default='psuedo', description='Logical realm for the object')]#
class orchestro.orche.params.OrcheSubnetParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enable: bool = False, inherits: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, display: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, about: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, memberof: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, subnet: ~typing.Annotated[str, ~annotated_types.MinLen(min_length=1)], macpref: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=2), ~annotated_types.MaxLen(max_length=2), _PydanticGeneralMetadata(pattern='^[\\da-fA-F]+$')] = None, gateway: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, resolve: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, ntpsync: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None)[source]#

Bases: OrcheChildParams

Process and validate the Orche configuration parameters.

about: Annotated[str | None, Field(None, description='Additional optional information', min_length=1)]#
display: Annotated[str | None, Field(None, description='Friendly name value for child', min_length=1)]#
enable: Annotated[bool, Field(False, description='Determine whether child enabled')]#
gateway: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Optional gateway for the subnet', metadata=[MinLen(min_length=1)])]#
inherits: Annotated[list[str] | None, Field(None, description='Other configuration to inherit', min_length=1)]#
kvopaque: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', min_length=0)]#
kvparsed: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', min_length=0)]#
macpref: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Optional prefix for MAC address', metadata=[MinLen(min_length=2), MaxLen(max_length=2), _PydanticGeneralMetadata(pattern='^[\\da-fA-F]+$')])]#
memberof: Annotated[list[str] | None, Field(None, description='Groups child is a member of', min_length=1)]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

ntpsync: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Optional NTP server for subnet', metadata=[MinLen(min_length=1)])]#
resolve: Annotated[list[str] | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Optional resolvers for subnet', metadata=[MinLen(min_length=1)])]#
subnet: Annotated[str, FieldInfo(annotation=NoneType, required=True, description='IPv4 or IPv6 network subnet', metadata=[MinLen(min_length=1)])]#
class orchestro.orche.params.OrcheSystemParams(_parse: ~typing.Callable[[...], ~typing.Any] | None = None, *, enable: bool = False, inherits: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, display: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, about: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, memberof: ~typing.Annotated[list[str] | None, ~annotated_types.MinLen(min_length=1)] = None, kvparsed: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, kvopaque: ~typing.Annotated[dict[str, ~typing.Any], ~annotated_types.MinLen(min_length=0)] = <factory>, realm: ~typing.Literal['ansible', 'psuedo'] = 'ansible', domain: ~typing.Annotated[str | None, ~annotated_types.MinLen(min_length=1)] = None, ansible: ~orchestro.orche.params.system.OrcheSystemAnsibleParams | None = None)[source]#

Bases: OrcheChildParams

Process and validate the Orche configuration parameters.

about: Annotated[str | None, Field(None, description='Additional optional information', min_length=1)]#
ansible: Annotated[OrcheSystemAnsibleParams | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Variables provided to Ansible')]#
display: Annotated[str | None, Field(None, description='Friendly name value for child', min_length=1)]#
domain: Annotated[str | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Domain to which child belongs', metadata=[MinLen(min_length=1)])]#
enable: Annotated[bool, Field(False, description='Determine whether child enabled')]#
inherits: Annotated[list[str] | None, Field(None, description='Other configuration to inherit', min_length=1)]#
kvopaque: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and when Ansible consumes inventory', min_length=0)]#
kvparsed: Annotated[dict[str, Any], Field(default_factory=dict, description='Additional metadata for child which is parsed after childs are instantiated and before Ansible consumes inventory', min_length=0)]#
memberof: Annotated[list[str] | None, Field(None, description='Groups child is a member of', min_length=1)]#
model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

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

realm: Annotated[Literal['ansible', 'psuedo'], FieldInfo(annotation=NoneType, required=False, default='ansible', description='Logical realm for the object')]#