File: network_acls.py

package info (click to toggle)
auth0-python 4.13.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,280 kB
  • sloc: python: 8,933; makefile: 15; sh: 2
file content (138 lines) | stat: -rw-r--r-- 4,311 bytes parent folder | download
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)