1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
from __future__ import annotations
from typing import Any, List # List is being used as list is already a method.
from ..rest import RestClient, RestClientOptions
from ..types import TimeoutType
class NetworkAcls:
"""Auth0 Netwrok Acls endpoints
Args:
domain (str): Your Auth0 domain, e.g: 'username.auth0.com'
token (str): Management API v2 Token
telemetry (bool, optional): Enable or disable Telemetry
(defaults to True)
timeout (float or tuple, optional): Change the requests
connect and read timeout. Pass a tuple to specify
both values separately or a float to set both to it.
(defaults to 5.0 for both)
protocol (str, optional): Protocol to use when making requests.
(defaults to "https")
rest_options (RestClientOptions): Pass an instance of
RestClientOptions to configure additional RestClient
options, such as rate-limit retries.
(defaults to None)
"""
def __init__(
self,
domain: str,
token: str,
telemetry: bool = True,
timeout: TimeoutType = 5.0,
protocol: str = "https",
rest_options: RestClientOptions | None = None,
) -> None:
self.domain = domain
self.protocol = protocol
self.client = RestClient(
jwt=token, telemetry=telemetry, timeout=timeout, options=rest_options
)
def _url(self, id: str | None = None) -> str:
url = f"{self.protocol}://{self.domain}/api/v2/network-acls"
if id is not None:
return f"{url}/{id}"
return url
def all(
self,
page: int = 0,
per_page: int = 25,
include_totals: bool = True,
) -> List[dict[str, Any]]:
"""List self-service profiles.
Args:
page (int, optional): The result's page number (zero based). By default,
retrieves the first page of results.
per_page (int, optional): The amount of entries per page. By default,
retrieves 25 results per page.
include_totals (bool, optional): True if the query summary is
to be included in the result, False otherwise. Defaults to True.
See: https://auth0.com/docs/api/management/v2/network-acls/get-network-acls
"""
params = {
"page": page,
"per_page": per_page,
"include_totals": str(include_totals).lower(),
}
return self.client.get(self._url(), params=params)
def create(self, body: dict[str, Any]) -> dict[str, Any]:
"""Create a new self-service profile.
Args:
body (dict): Attributes for the new access control list.
See: https://auth0.com/docs/api/management/v2/network-acls/post-network-acls
"""
return self.client.post(self._url(), data=body)
def get(self, id: str) -> dict[str, Any]:
"""Get a self-service profile.
Args:
id (str): The id of the access control list to retrieve.
See: https://auth0.com/docs/api/management/v2/network-acls/get-network-acls-by-id
"""
return self.client.get(self._url(id))
def delete(self, id: str) -> None:
"""Delete a self-service profile.
Args:
id (str): The id of the access control list to delete.
See: https://auth0.com/docs/api/management/v2/network-acls/delete-network-acls-by-id
"""
self.client.delete(self._url(id))
def update(self, id: str, body: dict[str, Any]) -> dict[str, Any]:
"""Update a access control list.
Args:
id (str): The id of the access control list to update.
body (dict): Attributes of the access control list to modify.
See: https://auth0.com/docs/api/management/v2/network-acls/put-network-acls-by-id
"""
return self.client.put(self._url(id), data=body)
def update_partial(self, id: str, body: dict[str, Any]) -> dict[str, Any]:
"""Update partially the access control list.
See: https://auth0.com/docs/api/management/v2/network-acls/patch-network-acls-by-id
"""
return self.client.patch(self._url(id), data=body)
|