Source code for linode_api4.groups.nodebalancer
from linode_api4.errors import UnexpectedResponseError
from linode_api4.groups import Group
from linode_api4.objects import Base, NodeBalancer
[docs]class NodeBalancerGroup(Group):
[docs] def __call__(self, *filters):
"""
Retrieves all of the NodeBalancers the acting user has access to.
This is intended to be called off of the :any:`LinodeClient`
class, like this::
nodebalancers = client.nodebalancers()
API Documentation: https://www.linode.com/docs/api/nodebalancers/#nodebalancers-list
:param filters: Any number of filters to apply to this query.
See :doc:`Filtering Collections</linode_api4/objects/filtering>`
for more details on filtering.
:returns: A list of NodeBalancers the acting user can access.
:rtype: PaginatedList of NodeBalancers
"""
return self.client._get_and_filter(NodeBalancer, *filters)
[docs] def create(self, region, **kwargs):
"""
Creates a new NodeBalancer in the given Region.
API Documentation: https://www.linode.com/docs/api/nodebalancers/#nodebalancer-create
:param region: The Region in which to create the NodeBalancer.
:type region: Region or str
:returns: The new NodeBalancer
:rtype: NodeBalancer
"""
params = {
"region": region.id if isinstance(region, Base) else region,
}
params.update(kwargs)
result = self.client.post("/nodebalancers", data=params)
if not "id" in result:
raise UnexpectedResponseError(
"Unexpected response when creating Nodebalaner!", json=result
)
n = NodeBalancer(self.client, result["id"], result)
return n