@@ -238,6 +238,7 @@ def create(self,
238238 name , # type: str
239239 rules = None , # type: Optional[List[FirewallRule]]
240240 labels = None , # type: Optional[str]
241+ resources = None , # type: Optional[List[FirewallResource]]
241242 ):
242243 # type: (...) -> CreateFirewallResponse
243244 """Creates a new Firewall.
@@ -247,6 +248,7 @@ def create(self,
247248 :param rules: List[:class:`FirewallRule <hcloud.firewalls.domain.FirewallRule>`] (optional)
248249 :param labels: Dict[str, str] (optional)
249250 User-defined labels (key-value pairs)
251+ :param resources: List[:class:`FirewallResource <hcloud.firewalls.domain.FirewallResource>`] (optional)
250252 :return: :class:`CreateFirewallResponse <hcloud.firewalls.domain.CreateFirewallResponse>`
251253 """
252254
@@ -260,16 +262,19 @@ def create(self,
260262 data .update ({"rules" : []})
261263 for rule in rules :
262264 data ['rules' ].append (rule .to_payload ())
263-
265+ if resources is not None :
266+ data .update ({"apply_to" : []})
267+ for resource in resources :
268+ data ['apply_to' ].append (resource .to_payload ())
264269 response = self ._client .request (url = "/firewalls" , json = data , method = "POST" )
265270
266- action = None
267- if response .get ('action ' ) is not None :
268- action = BoundAction (self ._client .actions , response ['action' ])
271+ actions = []
272+ if response .get ('actions ' ) is not None :
273+ actions = [ BoundAction (self ._client .actions , _ ) for _ in response ['actions' ]]
269274
270275 result = CreateFirewallResponse (
271276 firewall = BoundFirewall (self , response ['firewall' ]),
272- action = action
277+ actions = actions
273278 )
274279 return result
275280
0 commit comments