Исходный код esu.firewall_template_rule

from esu.base import BaseAPI, Field, ObjectAlreadyHasId, ObjectHasNoId


[документация]class FirewallTemplateRule(BaseAPI): """ Args: id (str): Идентификатор правила брандмауэра name (str): Имя правила брандмауэра firewall (str): Объект класса :class:`esu.FirewallTemplate`. Шаблон брандмауэра, к которому относится данное правило брандмауэра direction (str): направление правила брандмауэра destination_ip (str): destination_ip правила брандмауэра dst_port_range_max (str): dst_port_range_max правила брандмауэра dst_port_range_min (str): dst_port_range_min правила брандмауэра protocol (str): protocol правила брандмауэра token (str): Токен для доступа к API. Если не передан, будет использована переменная окружения **ESU_API_TOKEN** .. note:: Поля ``direction``, ``name`` и ``protocol`` необходимы для создания. """ class Meta: id = Field() name = Field() firewall = Field('esu.FirewallTemplate') direction = Field() destination_ip = Field() dst_port_range_max = Field() dst_port_range_min = Field() protocol = Field()
[документация] @classmethod def get_object(cls, firewall, rule_id, token=None): """ Получить объект правил брандмауэра по его ID Args: id (str): Идентификатор правила шаблона брандмауэра token (str): Токен для доступа к API. Если не передан, будет использована переменная окружения **ESU_API_TOKEN** Returns: object: Возвращает объект правила шаблона брандмауэра :class:`esu.FirewallTemplateRule` """ firewall_rule = cls(token=token, id=rule_id, firewall=firewall) firewall_rule._get_object( 'v1/firewall/{}/rule'.format(firewall_rule.firewall.id), firewall_rule.id) return firewall_rule
[документация] def create(self): """ Создать объект Raises: ObjectAlreadyHasId: Если производится попытка создать объект, который уже существует """ if self.id is not None: raise ObjectAlreadyHasId self._commit()
[документация] def save(self): """ Сохранить изменения Raises: ObjectHasNoId: Если производится попытка сохранить несуществующий объект """ if self.id is None: raise ObjectHasNoId self._commit()
def _commit(self): self._commit_object( 'v1/firewall/{}/rule'.format(self.firewall.id), name=self.name, destination_ip=self.destination_ip, direction=self.direction, dst_port_range_max=self.dst_port_range_max, dst_port_range_min=self.dst_port_range_min, protocol=self.protocol, )
[документация] def destroy(self): """ Удалить объект Raises: ObjectHasNoId: Когда производится попытка удалить несуществующий объект """ if self.id is None: raise ObjectHasNoId self._destroy_object('v1/firewall/{}/rule'.format(self.firewall.id), self.id) self.id = None