Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
logging.debug("In parse_kwargs() for ApplicationRisk class.")
def post(self):
logging.info('POST method for API for ApplicationRisk not supported.')
pass
def put(self):
logging.info('PUT method for API for ApplicationRisk not supported.')
pass
def delete(self):
logging.info('DELETE method for API for ApplicationRisk not supported.')
pass
class Application(APIClassTemplate):
"""
The Application Object in the FMC.
"""
URL_SUFFIX = '/object/applications'
VALID_CHARACTERS_FOR_NAME = """[.\w\d_\-\/\. ]"""
def __init__(self, fmc, **kwargs):
super().__init__(fmc, **kwargs)
logging.debug("In __init__() for Application class.")
self.parse_kwargs(**kwargs)
def format_data(self):
logging.debug("In format_data() for Application class.")
json_data = {}
if 'id' in self.__dict__:
logging.debug("In format_data() for FTDNatPolicy class.")
json_data = {}
if 'id' in self.__dict__:
json_data['id'] = self.id
if 'name' in self.__dict__:
json_data['name'] = self.name
if 'type' in self.__dict__:
json_data['type'] = self.type
return json_data
def parse_kwargs(self, **kwargs):
super().parse_kwargs(**kwargs)
logging.debug("In parse_kwargs() for FTDNatPolicy class.")
class AutoNatRules(APIClassTemplate):
"""
The AutoNatRules Object in the FMC.
"""
PREFIX_URL = '/policy/ftdnatpolicies'
REQUIRED_FOR_POST = ["nat_id"]
def __init__(self, fmc, **kwargs):
super().__init__(fmc, **kwargs)
logging.debug("In __init__() for AutoNatRules class.")
self.parse_kwargs(**kwargs)
self.type = "FTDAutoNatRule"
def format_data(self):
logging.debug("In format_data() for AutoNatRules class.")
json_data = {}
"""
This module contains the "miscellaneous" class objects that represent the various objects in the FMC.
"""
from fmcapi.api_objects.devices import Device
from fmcapi.api_objects.api_template import APIClassTemplate
import logging
class TaskStatuses(APIClassTemplate):
"""
The Task Status Object in the FMC.
"""
URL_SUFFIX = '/job/taskstatuses'
VALID_CHARACTERS_FOR_NAME = """[.\w\d_\- ]"""
def __init__(self, fmc, **kwargs):
super().__init__(fmc, **kwargs)
logging.debug("In __init__() for TaskStatuses class.")
self.parse_kwargs(**kwargs)
def format_data(self):
logging.debug("In format_data() for TaskStatuses class.")
json_data = {}
if 'id' in self.__dict__:
'NAT Policy.'.format(name))
def post(self):
logging.info('POST method for API for NatRules not supported.')
pass
def put(self):
logging.info('PUT method for API for NatRules not supported.')
pass
def delete(self):
logging.info('DELETE method for API for NatRules not supported.')
pass
class PolicyAssignments(APIClassTemplate):
"""
The PolicyAssignments Object in the FMC.
"""
REQUIRED_FOR_POST = ['targets','policy']
REQUIRED_FOR_PUT = ['id','targets','policy']
URL_SUFFIX = '/assignment/policyassignments'
FILTER_BY_NAME = True
def __init__(self, fmc, **kwargs):
super().__init__(fmc, **kwargs)
logging.debug("In __init__() for PolicyAssignments class.")
self.parse_kwargs(**kwargs)
self.type = "PolicyAssignment"
def format_data(self):
logging.debug("In format_data() for PolicyAssignments class.")
def parse_kwargs(self, **kwargs):
super().parse_kwargs(**kwargs)
logging.debug("In parse_kwargs() for ICMPv6Object class.")
if 'overrideTargetId' in kwargs:
self.overrideTargetId = kwargs['overrideTargetId']
if 'code' in kwargs:
self.code = kwargs['code']
if 'icmpType' in kwargs:
self.icmpType = kwargs['icmpType']
if 'overrides' in kwargs:
self.overrides = kwargs['overrides']
if 'overridable' in kwargs:
self.overridable = kwargs['overridable']
class IKEv1IpsecProposals(APIClassTemplate):
"""
The IKEv1IpsecProposals Object in the FMC.
"""
URL_SUFFIX = '/object/ikev1ipsecproposals'
REQUIRED_FOR_POST = ['name', 'espEncryption', 'espHash']
VALID_FOR_ENCRYPTION = ['DES', '3DES', 'AES-128', 'AES-192', 'AES-256', 'ESP-NULL']
VALID_FOR_HASH = ['NONE', 'MD5', 'SHA']
VALID_CHARACTERS_FOR_NAME = """[.\w\d_\- ]"""
def __init__(self, fmc, **kwargs):
super().__init__(fmc, **kwargs)
logging.debug("In __init__() for IKEv1IpsecProposals class.")
self.parse_kwargs(**kwargs)
self.type = 'IKEv1IPsecProposal'
if 'literals' in self.__dict__:
literals_list = []
for obj in self.literals:
if obj['startTag'] != startvlan and obj['endTag'] != endvlan:
literals_list.append(obj)
self.literals = literals_list
logging.info('Removed "{}/{}" from VlanGroupTag.'.format(startvlan, endvlan))
else:
logging.info("This VlanGroupTag has no unnamed_vlantags. Nothing to remove.")
elif action == 'clear':
if 'literals' in self.__dict__:
del self.literals
logging.info('All unnamed_vlantags removed from this VlanGroupTag.')
class VariableSet(APIClassTemplate):
"""
The VariableSet Object in the FMC.
"""
URL_SUFFIX = '/object/variablesets'
def __init__(self, fmc, **kwargs):
super().__init__(fmc, **kwargs)
logging.debug("In __init__() for VariableSet class.")
self.parse_kwargs(**kwargs)
def format_data(self):
logging.debug("In format_data() for VariableSet class.")
json_data = {}
if 'id' in self.__dict__:
json_data['id'] = self.id
if 'port' in self.__dict__:
json_data['port'] = self.port
if 'protocol' in self.__dict__:
json_data['protocol'] = self.protocol
return json_data
def parse_kwargs(self, **kwargs):
super().parse_kwargs(**kwargs)
logging.debug("In parse_kwargs() for ProtocolPort class.")
if 'port' in kwargs:
self.port = kwargs['port']
if 'protocol' in kwargs:
self.protocol = kwargs['protocol']
class InterfaceGroup(APIClassTemplate):
"""
The InterfaceGroup Object in the FMC.
"""
URL_SUFFIX = '/object/interfacegroups'
REQUIRED_FOR_POST = ['name', 'interfaceMode']
REQUIRED_FOR_PUT = ['id']
FILTER_BY_NAME = True
def __init__(self, fmc, **kwargs):
super().__init__(fmc, **kwargs)
logging.debug("In __init__() for InterfaceGroup class.")
self.parse_kwargs(**kwargs)
self.type = 'InterfaceGroup'
def format_data(self):
logging.warning('DeviceHAPair {} not found. Cannot set up HA for BREAK.'.format(self.name))
def post(self, **kwargs):
logging.debug("In post() for DeviceHAPairs class.")
# Attempting to "Deploy" during Device registration causes issues.
self.fmc.autodeploy = False
return super().post(**kwargs)
def put(self, **kwargs):
logging.debug("In put() for DeviceHAPairs class.")
# Attempting to "Deploy" during Device registration causes issues.
self.fmc.autodeploy = False
return super().put(**kwargs)
class DeviceHAMonitoredInterfaces(APIClassTemplate):
"""
The DeviceHAMonitoredInterfaces Object in the FMC.
"""
PREFIX_URL = '/devicehapairs/ftddevicehapairs'
REQUIRED_FOR_PUT = ['id']
def __init__(self, fmc, **kwargs):
super().__init__(fmc, **kwargs)
logging.debug("In __init__() for DeviceHAMonitoredInterfaces class.")
self.parse_kwargs(**kwargs)
def format_data(self):
logging.debug("In format_data() for DeviceHAMonitoredInterfaces class.")
json_data = {}
if 'id' in self.__dict__:
if 'name' in self.__dict__:
json_data['name'] = self.name
if 'value' in self.__dict__:
json_data['value'] = self.value
if 'description' in self.__dict__:
json_data['description'] = self.description
return json_data
def parse_kwargs(self, **kwargs):
super().parse_kwargs(**kwargs)
logging.debug("In parse_kwargs() for IPRange class.")
if 'value' in kwargs:
self.value = kwargs['value']
class NetworkGroup(APIClassTemplate):
"""
The NetworkGroup Object in the FMC.
"""
URL_SUFFIX = '/object/networkgroups'
# Technically you can have objects OR literals but I'm not set up for "OR" logic, yet.
REQUIRED_FOR_POST = ['name', 'objects']
def __init__(self, fmc, **kwargs):
super().__init__(fmc, **kwargs)
logging.debug("In __init__() for NetworkGroup class.")
self.parse_kwargs(**kwargs)
self.type = 'NetworkGroup'
def format_data(self):
break
if new_net is None:
logging.warning('Network "{}" is not found in FMC. Cannot add to patPool.'.format(name))
else:
self.natType = "DYNAMIC"
self.unidirectional = True
self.patOptions = {"patPoolAddress": new_net}
self.patOptions["interfacePat"] = options.interfacePat if "interfacePat" in options.keys() else False
self.patOptions["includeReserve"] = options.includeReserve if "includeReserve" in options.keys() else False
self.patOptions["roundRobin"] = options.roundRobin if "roundRobin" in options.keys() else True
self.patOptions["extendedPat"] = options.extendedPat if "extendedPat" in options.keys() else False
self.patOptions["flatPortRange"] = options.flatPortRange if "flatPortRange" in options.keys() else False
logging.info('Adding "{}" to patPool for this AutoNatRule.'.format(name))
class NatRules(APIClassTemplate):
"""
The NatRules Object in the FMC.
"""
PREFIX_URL = '/policy/ftdnatpolicies'
VALID_CHARACTERS_FOR_NAME = """[.\w\d_\- ]"""
def __init__(self, fmc, **kwargs):
super().__init__(fmc, **kwargs)
logging.debug("In __init__() for NatRules class.")
self.parse_kwargs(**kwargs)
def format_data(self):
logging.debug("In format_data() for NatRules class.")
json_data = {}
if 'id' in self.__dict__: