seguro.commands.acl_syncer.model

Classes

AccessControlList(*[, groups, roles, clients])

BrokerAction(value[, names, module, ...])

BrokerStatement(*[, effect, actions, priority])

Client(*[, groups, roles])

Effect(value[, names, module, qualname, ...])

Group(*, roles)

Role(*[, broker, store])

StoreAction(value[, names, module, ...])

StoreStatement(*[, effect, actions, condition])

class seguro.commands.acl_syncer.model.AccessControlList(*, groups={}, roles={}, clients={})[source]

Bases: BaseModel

Parameters:
  • groups (dict[str, Group])

  • roles (dict[str, Role])

  • clients (dict[str, Client])

clients: dict[str, Client]
groups: dict[str, Group]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

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

model_config: ClassVar[ConfigDict] = {}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'clients': FieldInfo(annotation=dict[str, Client], required=False, default={}), 'groups': FieldInfo(annotation=dict[str, Group], required=False, default={}), 'roles': FieldInfo(annotation=dict[str, Role], required=False, default={})}

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

This replaces Model.__fields__ from Pydantic V1.

roles: dict[str, Role]
update(other)[source]
Parameters:

other (AccessControlList)

Return type:

AccessControlList

class seguro.commands.acl_syncer.model.BrokerAction(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

PUBLISH = 'Publish'
SUBSCRIBE = 'Subscribe'
class seguro.commands.acl_syncer.model.BrokerStatement(*, effect=Effect.ALLOW, actions={BrokerAction.PUBLISH, BrokerAction.SUBSCRIBE}, topic, priority=-1)[source]

Bases: BaseModel

Parameters:
actions: set[BrokerAction]
effect: Effect
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

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

model_config: ClassVar[ConfigDict] = {}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'actions': FieldInfo(annotation=set[BrokerAction], required=False, default={<BrokerAction.SUBSCRIBE: 'Subscribe'>, <BrokerAction.PUBLISH: 'Publish'>}), 'effect': FieldInfo(annotation=Effect, required=False, default=<Effect.ALLOW: 'Allow'>), 'priority': FieldInfo(annotation=int, required=False, default=-1), 'topic': FieldInfo(annotation=str, required=True)}

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

This replaces Model.__fields__ from Pydantic V1.

priority: int
topic: str
class seguro.commands.acl_syncer.model.Client(*, groups=[], roles=[])[source]

Bases: BaseModel

Parameters:
  • groups (list[str])

  • roles (list[str])

groups: list[str]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

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

model_config: ClassVar[ConfigDict] = {}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'groups': FieldInfo(annotation=list[str], required=False, default=[]), 'roles': FieldInfo(annotation=list[str], required=False, default=[])}

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

This replaces Model.__fields__ from Pydantic V1.

roles: list[str]
update(other)[source]
Parameters:

other (Client)

Return type:

Client

class seguro.commands.acl_syncer.model.Effect(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

ALLOW = 'Allow'
DENY = 'Deny'
class seguro.commands.acl_syncer.model.Group(*, roles)[source]

Bases: BaseModel

Parameters:

roles (list[str])

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

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

model_config: ClassVar[ConfigDict] = {}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'roles': FieldInfo(annotation=list[str], required=True)}

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

This replaces Model.__fields__ from Pydantic V1.

roles: list[str]
update(other)[source]
Parameters:

other (Group)

Return type:

Group

class seguro.commands.acl_syncer.model.Role(*, broker=[], store=[])[source]

Bases: BaseModel

Parameters:
broker: list[BrokerStatement]
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

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

model_config: ClassVar[ConfigDict] = {}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'broker': FieldInfo(annotation=list[BrokerStatement], required=False, default=[]), 'store': FieldInfo(annotation=list[StoreStatement], required=False, default=[])}

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

This replaces Model.__fields__ from Pydantic V1.

store: list[StoreStatement]
update(other)[source]
Parameters:

other (Role)

Return type:

Role

class seguro.commands.acl_syncer.model.StoreAction(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: Enum

ANY = '*'
DELETE_OBJECT = 'DeleteObject'
GET_OBJECT = 'GetObject'
LIST_OJECTS = 'ListObjects'
PUT_OBJECT = 'PutObject'
class seguro.commands.acl_syncer.model.StoreStatement(*, effect=Effect.ALLOW, actions={StoreAction.ANY}, object, condition={})[source]

Bases: BaseModel

Parameters:
  • effect (Effect)

  • actions (set[StoreAction])

  • object (str)

  • condition (dict[str, dict[str, str]])

actions: set[StoreAction]
condition: dict[str, dict[str, str]]
effect: Effect
model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}

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

model_config: ClassVar[ConfigDict] = {}

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

model_fields: ClassVar[dict[str, FieldInfo]] = {'actions': FieldInfo(annotation=set[StoreAction], required=False, default={<StoreAction.ANY: '*'>}), 'condition': FieldInfo(annotation=dict[str, dict[str, str]], required=False, default={}), 'effect': FieldInfo(annotation=Effect, required=False, default=<Effect.ALLOW: 'Allow'>), 'object': FieldInfo(annotation=str, required=True)}

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

This replaces Model.__fields__ from Pydantic V1.

object: str