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
|
from __future__ import annotations
from typing import Any
from ..rest import RestClient, RestClientOptions
from ..types import TimeoutType
class ResourceServers:
"""Auth0 resource servers 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/resource-servers"
if id is not None:
return f"{url}/{id}"
return url
def create(self, body: dict[str, Any]) -> dict[str, Any]:
"""Create a new resource server.
Args:
body (dict): Attributes for the new resource Server.
See: https://auth0.com/docs/api/management/v2#!/Resource_Servers/post_resource_servers
"""
return self.client.post(self._url(), data=body)
def get_all(
self,
page: int | None = None,
per_page: int | None = None,
include_totals: bool = False,
):
"""Retrieves all resource servers
Args:
page (int, optional): The result's page number (zero based). When not set,
the default value is up to the server.
per_page (int, optional): The amount of entries per page. When not set,
the default value is up to the server.
include_totals (bool, optional): True if the query summary is
to be included in the result, False otherwise. Defaults to False.
See: https://auth0.com/docs/api/management/v2#!/Resource_Servers/get_resource_servers
"""
params = {
"page": page,
"per_page": per_page,
"include_totals": str(include_totals).lower(),
}
return self.client.get(self._url(), params=params)
def get(self, id: str) -> dict[str, Any]:
"""Retrieves a resource server by its id.
Args:
id (str): id of the resource server to get.
See: https://auth0.com/docs/api/management/v2#!/Resource_Servers/get_resource_servers_by_id
"""
return self.client.get(self._url(id))
def delete(self, id: str) -> Any:
"""Deletes a resource server.
Args:
id (str): Id of resource server to delete.
See: https://auth0.com/docs/api/management/v2#!/Resource_Servers/delete_resource_servers_by_id
"""
return self.client.delete(self._url(id))
def update(self, id: str, body: dict[str, Any]) -> dict[str, Any]:
"""Modifies a resource server.
Args:
id (str): The id of the resource server to update.
body (dict): Attributes to modify.
See: https://auth0.com/docs/api/management/v2#!/Resource_Servers/patch_resource_servers_by_id
"""
return self.client.patch(self._url(id), data=body)
|