universal-mcp 0.1.13rc1__py3-none-any.whl → 0.1.13rc2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc2.dist-info}/METADATA +1 -1
- universal_mcp-0.1.13rc2.dist-info/RECORD +38 -0
- universal_mcp/applications/ahrefs/README.md +0 -76
- universal_mcp/applications/ahrefs/__init__.py +0 -0
- universal_mcp/applications/ahrefs/app.py +0 -2291
- universal_mcp/applications/cal_com_v2/README.md +0 -175
- universal_mcp/applications/cal_com_v2/__init__.py +0 -0
- universal_mcp/applications/cal_com_v2/app.py +0 -5390
- universal_mcp/applications/calendly/README.md +0 -78
- universal_mcp/applications/calendly/__init__.py +0 -0
- universal_mcp/applications/calendly/app.py +0 -1195
- universal_mcp/applications/clickup/README.md +0 -160
- universal_mcp/applications/clickup/__init__.py +0 -0
- universal_mcp/applications/clickup/app.py +0 -5009
- universal_mcp/applications/coda/README.md +0 -133
- universal_mcp/applications/coda/__init__.py +0 -0
- universal_mcp/applications/coda/app.py +0 -3671
- universal_mcp/applications/curstdata/README.md +0 -50
- universal_mcp/applications/curstdata/__init__.py +0 -0
- universal_mcp/applications/curstdata/app.py +0 -551
- universal_mcp/applications/e2b/README.md +0 -37
- universal_mcp/applications/e2b/app.py +0 -65
- universal_mcp/applications/elevenlabs/README.md +0 -84
- universal_mcp/applications/elevenlabs/__init__.py +0 -0
- universal_mcp/applications/elevenlabs/app.py +0 -1402
- universal_mcp/applications/falai/README.md +0 -42
- universal_mcp/applications/falai/__init__.py +0 -0
- universal_mcp/applications/falai/app.py +0 -332
- universal_mcp/applications/figma/README.md +0 -74
- universal_mcp/applications/figma/__init__.py +0 -0
- universal_mcp/applications/figma/app.py +0 -1261
- universal_mcp/applications/firecrawl/README.md +0 -45
- universal_mcp/applications/firecrawl/app.py +0 -268
- universal_mcp/applications/github/README.md +0 -47
- universal_mcp/applications/github/app.py +0 -429
- universal_mcp/applications/gong/README.md +0 -88
- universal_mcp/applications/gong/__init__.py +0 -0
- universal_mcp/applications/gong/app.py +0 -2297
- universal_mcp/applications/google_calendar/app.py +0 -442
- universal_mcp/applications/google_docs/README.md +0 -40
- universal_mcp/applications/google_docs/app.py +0 -88
- universal_mcp/applications/google_drive/README.md +0 -44
- universal_mcp/applications/google_drive/app.py +0 -286
- universal_mcp/applications/google_mail/README.md +0 -47
- universal_mcp/applications/google_mail/app.py +0 -664
- universal_mcp/applications/google_sheet/README.md +0 -42
- universal_mcp/applications/google_sheet/app.py +0 -150
- universal_mcp/applications/heygen/README.md +0 -69
- universal_mcp/applications/heygen/__init__.py +0 -0
- universal_mcp/applications/heygen/app.py +0 -956
- universal_mcp/applications/mailchimp/README.md +0 -306
- universal_mcp/applications/mailchimp/__init__.py +0 -0
- universal_mcp/applications/mailchimp/app.py +0 -10937
- universal_mcp/applications/markitdown/app.py +0 -44
- universal_mcp/applications/neon/README.md +0 -99
- universal_mcp/applications/neon/__init__.py +0 -0
- universal_mcp/applications/neon/app.py +0 -1924
- universal_mcp/applications/notion/README.md +0 -55
- universal_mcp/applications/notion/__init__.py +0 -0
- universal_mcp/applications/notion/app.py +0 -527
- universal_mcp/applications/perplexity/README.md +0 -37
- universal_mcp/applications/perplexity/app.py +0 -65
- universal_mcp/applications/reddit/README.md +0 -45
- universal_mcp/applications/reddit/app.py +0 -379
- universal_mcp/applications/replicate/README.md +0 -65
- universal_mcp/applications/replicate/__init__.py +0 -0
- universal_mcp/applications/replicate/app.py +0 -980
- universal_mcp/applications/resend/README.md +0 -38
- universal_mcp/applications/resend/app.py +0 -37
- universal_mcp/applications/retell_ai/README.md +0 -46
- universal_mcp/applications/retell_ai/__init__.py +0 -0
- universal_mcp/applications/retell_ai/app.py +0 -333
- universal_mcp/applications/rocketlane/README.md +0 -42
- universal_mcp/applications/rocketlane/__init__.py +0 -0
- universal_mcp/applications/rocketlane/app.py +0 -194
- universal_mcp/applications/serpapi/README.md +0 -37
- universal_mcp/applications/serpapi/app.py +0 -73
- universal_mcp/applications/shortcut/README.md +0 -153
- universal_mcp/applications/shortcut/__init__.py +0 -0
- universal_mcp/applications/shortcut/app.py +0 -3880
- universal_mcp/applications/spotify/README.md +0 -116
- universal_mcp/applications/spotify/__init__.py +0 -0
- universal_mcp/applications/spotify/app.py +0 -2526
- universal_mcp/applications/supabase/README.md +0 -112
- universal_mcp/applications/supabase/__init__.py +0 -0
- universal_mcp/applications/supabase/app.py +0 -2970
- universal_mcp/applications/tavily/README.md +0 -38
- universal_mcp/applications/tavily/app.py +0 -51
- universal_mcp/applications/wrike/README.md +0 -71
- universal_mcp/applications/wrike/__init__.py +0 -0
- universal_mcp/applications/wrike/app.py +0 -1372
- universal_mcp/applications/youtube/README.md +0 -82
- universal_mcp/applications/youtube/__init__.py +0 -0
- universal_mcp/applications/youtube/app.py +0 -1428
- universal_mcp/applications/zenquotes/README.md +0 -37
- universal_mcp/applications/zenquotes/app.py +0 -31
- universal_mcp-0.1.13rc1.dist-info/RECORD +0 -132
- {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc2.dist-info}/WHEEL +0 -0
- {universal_mcp-0.1.13rc1.dist-info → universal_mcp-0.1.13rc2.dist-info}/entry_points.txt +0 -0
@@ -1,2970 +0,0 @@
|
|
1
|
-
from typing import Any
|
2
|
-
|
3
|
-
from universal_mcp.applications import APIApplication
|
4
|
-
from universal_mcp.integrations import Integration
|
5
|
-
|
6
|
-
|
7
|
-
class SupabaseApp(APIApplication):
|
8
|
-
def __init__(self, integration: Integration = None, **kwargs) -> None:
|
9
|
-
super().__init__(name="supabase", integration=integration, **kwargs)
|
10
|
-
self.base_url = "https://api.supabase.com"
|
11
|
-
|
12
|
-
def v1_get_a_branch_config(self, branch_id) -> dict[str, Any]:
|
13
|
-
"""
|
14
|
-
Retrieves the configuration details for a specific branch by branch ID.
|
15
|
-
|
16
|
-
Args:
|
17
|
-
branch_id: str. The unique identifier of the branch whose configuration is to be retrieved.
|
18
|
-
|
19
|
-
Returns:
|
20
|
-
dict. A dictionary containing the configuration data for the specified branch.
|
21
|
-
|
22
|
-
Raises:
|
23
|
-
ValueError: If 'branch_id' is None.
|
24
|
-
requests.HTTPError: If the HTTP request to fetch the branch configuration fails.
|
25
|
-
|
26
|
-
Tags:
|
27
|
-
get, branch, config, api
|
28
|
-
"""
|
29
|
-
if branch_id is None:
|
30
|
-
raise ValueError("Missing required parameter 'branch_id'")
|
31
|
-
url = f"{self.base_url}/v1/branches/{branch_id}"
|
32
|
-
query_params = {}
|
33
|
-
response = self._get(url, params=query_params)
|
34
|
-
response.raise_for_status()
|
35
|
-
return response.json()
|
36
|
-
|
37
|
-
def v1_update_a_branch_config(
|
38
|
-
self,
|
39
|
-
branch_id,
|
40
|
-
branch_name=None,
|
41
|
-
git_branch=None,
|
42
|
-
reset_on_push=None,
|
43
|
-
persistent=None,
|
44
|
-
status=None,
|
45
|
-
) -> dict[str, Any]:
|
46
|
-
"""
|
47
|
-
Updates the configuration of a specified branch by sending a PATCH request with provided configuration fields.
|
48
|
-
|
49
|
-
Args:
|
50
|
-
branch_id: str. Unique identifier of the branch to be updated. Required.
|
51
|
-
branch_name: str or None. New name for the branch. Optional.
|
52
|
-
git_branch: str or None. Name of the associated Git branch. Optional.
|
53
|
-
reset_on_push: bool or None. If True, resets the branch on Git push. Optional.
|
54
|
-
persistent: bool or None. Whether the branch configuration should persist across operations. Optional.
|
55
|
-
status: str or None. Status to set for the branch (e.g., 'active', 'inactive'). Optional.
|
56
|
-
|
57
|
-
Returns:
|
58
|
-
dict. JSON response containing the updated branch configuration details from the API.
|
59
|
-
|
60
|
-
Raises:
|
61
|
-
ValueError: Raised if 'branch_id' is None.
|
62
|
-
requests.HTTPError: Raised if the HTTP request fails or returns a non-2xx status code.
|
63
|
-
|
64
|
-
Tags:
|
65
|
-
update, branch-management, api, patch, config
|
66
|
-
"""
|
67
|
-
if branch_id is None:
|
68
|
-
raise ValueError("Missing required parameter 'branch_id'")
|
69
|
-
request_body = {
|
70
|
-
"branch_name": branch_name,
|
71
|
-
"git_branch": git_branch,
|
72
|
-
"reset_on_push": reset_on_push,
|
73
|
-
"persistent": persistent,
|
74
|
-
"status": status,
|
75
|
-
}
|
76
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
77
|
-
url = f"{self.base_url}/v1/branches/{branch_id}"
|
78
|
-
query_params = {}
|
79
|
-
response = self._patch(url, data=request_body, params=query_params)
|
80
|
-
response.raise_for_status()
|
81
|
-
return response.json()
|
82
|
-
|
83
|
-
def v1_delete_a_branch(self, branch_id) -> dict[str, Any]:
|
84
|
-
"""
|
85
|
-
Deletes a branch with the specified branch ID using a DELETE request to the API.
|
86
|
-
|
87
|
-
Args:
|
88
|
-
branch_id: The unique identifier of the branch to be deleted.
|
89
|
-
|
90
|
-
Returns:
|
91
|
-
A dictionary containing the JSON response from the API after the branch is deleted.
|
92
|
-
|
93
|
-
Raises:
|
94
|
-
ValueError: If the required parameter 'branch_id' is None.
|
95
|
-
HTTPError: If the DELETE request to the API fails with a non-success status code.
|
96
|
-
|
97
|
-
Tags:
|
98
|
-
delete, branch-management, api
|
99
|
-
"""
|
100
|
-
if branch_id is None:
|
101
|
-
raise ValueError("Missing required parameter 'branch_id'")
|
102
|
-
url = f"{self.base_url}/v1/branches/{branch_id}"
|
103
|
-
query_params = {}
|
104
|
-
response = self._delete(url, params=query_params)
|
105
|
-
response.raise_for_status()
|
106
|
-
return response.json()
|
107
|
-
|
108
|
-
def v1_reset_a_branch(self, branch_id) -> dict[str, Any]:
|
109
|
-
"""
|
110
|
-
Resets the specified branch by making a POST request to the branch reset endpoint.
|
111
|
-
|
112
|
-
Args:
|
113
|
-
branch_id: The unique identifier of the branch to reset.
|
114
|
-
|
115
|
-
Returns:
|
116
|
-
A dictionary containing the API response data from the branch reset operation.
|
117
|
-
|
118
|
-
Raises:
|
119
|
-
ValueError: If 'branch_id' is None.
|
120
|
-
requests.HTTPError: If the HTTP request to reset the branch fails with a client or server error.
|
121
|
-
|
122
|
-
Tags:
|
123
|
-
reset, branch, api, post, management
|
124
|
-
"""
|
125
|
-
if branch_id is None:
|
126
|
-
raise ValueError("Missing required parameter 'branch_id'")
|
127
|
-
url = f"{self.base_url}/v1/branches/{branch_id}/reset"
|
128
|
-
query_params = {}
|
129
|
-
response = self._post(url, data={}, params=query_params)
|
130
|
-
response.raise_for_status()
|
131
|
-
return response.json()
|
132
|
-
|
133
|
-
def v1_list_all_projects(
|
134
|
-
self,
|
135
|
-
) -> list[Any]:
|
136
|
-
"""
|
137
|
-
Retrieves a list of all projects from the v1 API endpoint.
|
138
|
-
|
139
|
-
Args:
|
140
|
-
None: This function takes no arguments
|
141
|
-
|
142
|
-
Returns:
|
143
|
-
list: A list of project objects returned by the API.
|
144
|
-
|
145
|
-
Raises:
|
146
|
-
requests.exceptions.HTTPError: Raised if the HTTP request to the API endpoint returns an unsuccessful status code.
|
147
|
-
|
148
|
-
Tags:
|
149
|
-
list, projects, api
|
150
|
-
"""
|
151
|
-
url = f"{self.base_url}/v1/projects"
|
152
|
-
query_params = {}
|
153
|
-
response = self._get(url, params=query_params)
|
154
|
-
response.raise_for_status()
|
155
|
-
return response.json()
|
156
|
-
|
157
|
-
def v1_create_a_project(
|
158
|
-
self,
|
159
|
-
db_pass,
|
160
|
-
name,
|
161
|
-
organization_id,
|
162
|
-
region,
|
163
|
-
plan=None,
|
164
|
-
kps_enabled=None,
|
165
|
-
desired_instance_size=None,
|
166
|
-
template_url=None,
|
167
|
-
release_channel=None,
|
168
|
-
postgres_engine=None,
|
169
|
-
) -> dict[str, Any]:
|
170
|
-
"""
|
171
|
-
Creates a new project with the specified configuration and returns the project details.
|
172
|
-
|
173
|
-
Args:
|
174
|
-
db_pass: str. The password for the project's database. Required.
|
175
|
-
name: str. The name of the project to be created. Required.
|
176
|
-
organization_id: str. The unique identifier of the organization under which the project is created. Required.
|
177
|
-
region: str. The region where the project resources should be provisioned. Required.
|
178
|
-
plan: Optional[str]. The subscription or resource plan to assign to the project.
|
179
|
-
kps_enabled: Optional[bool]. Whether Key-Per-Service (KPS) is enabled for the project.
|
180
|
-
desired_instance_size: Optional[str]. The desired instance size for the project's resources.
|
181
|
-
template_url: Optional[str]. URL to a project template to use for initialization.
|
182
|
-
release_channel: Optional[str]. The release channel to use for database engine updates.
|
183
|
-
postgres_engine: Optional[str]. The PostgreSQL engine version to use for the project.
|
184
|
-
|
185
|
-
Returns:
|
186
|
-
dict[str, Any]: A dictionary containing the details of the newly created project as returned by the API.
|
187
|
-
|
188
|
-
Raises:
|
189
|
-
ValueError: If any of the required parameters ('db_pass', 'name', 'organization_id', or 'region') is missing.
|
190
|
-
requests.HTTPError: If the HTTP request to create the project fails or returns an unsuccessful status.
|
191
|
-
|
192
|
-
Tags:
|
193
|
-
create, project, api, management
|
194
|
-
"""
|
195
|
-
if db_pass is None:
|
196
|
-
raise ValueError("Missing required parameter 'db_pass'")
|
197
|
-
if name is None:
|
198
|
-
raise ValueError("Missing required parameter 'name'")
|
199
|
-
if organization_id is None:
|
200
|
-
raise ValueError("Missing required parameter 'organization_id'")
|
201
|
-
if region is None:
|
202
|
-
raise ValueError("Missing required parameter 'region'")
|
203
|
-
request_body = {
|
204
|
-
"db_pass": db_pass,
|
205
|
-
"name": name,
|
206
|
-
"organization_id": organization_id,
|
207
|
-
"plan": plan,
|
208
|
-
"region": region,
|
209
|
-
"kps_enabled": kps_enabled,
|
210
|
-
"desired_instance_size": desired_instance_size,
|
211
|
-
"template_url": template_url,
|
212
|
-
"release_channel": release_channel,
|
213
|
-
"postgres_engine": postgres_engine,
|
214
|
-
}
|
215
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
216
|
-
url = f"{self.base_url}/v1/projects"
|
217
|
-
query_params = {}
|
218
|
-
response = self._post(url, data=request_body, params=query_params)
|
219
|
-
response.raise_for_status()
|
220
|
-
return response.json()
|
221
|
-
|
222
|
-
def v1_list_all_organizations(
|
223
|
-
self,
|
224
|
-
) -> list[Any]:
|
225
|
-
"""
|
226
|
-
Retrieves a list of all organizations from the API endpoint.
|
227
|
-
|
228
|
-
Args:
|
229
|
-
None: This function takes no arguments
|
230
|
-
|
231
|
-
Returns:
|
232
|
-
A list containing organization data as returned by the API. Each element represents an organization's details.
|
233
|
-
|
234
|
-
Raises:
|
235
|
-
requests.exceptions.HTTPError: If the HTTP request to the organizations API endpoint fails or returns a non-success status code.
|
236
|
-
|
237
|
-
Tags:
|
238
|
-
list, organizations, api, fetch, important
|
239
|
-
"""
|
240
|
-
url = f"{self.base_url}/v1/organizations"
|
241
|
-
query_params = {}
|
242
|
-
response = self._get(url, params=query_params)
|
243
|
-
response.raise_for_status()
|
244
|
-
return response.json()
|
245
|
-
|
246
|
-
def v1_create_an_organization(self, name) -> dict[str, Any]:
|
247
|
-
"""
|
248
|
-
Creates a new organization using the provided name and returns the organization details.
|
249
|
-
|
250
|
-
Args:
|
251
|
-
name: str. The name of the organization to be created. Must not be None.
|
252
|
-
|
253
|
-
Returns:
|
254
|
-
dict[str, Any]: A dictionary containing the created organization's details as returned by the API.
|
255
|
-
|
256
|
-
Raises:
|
257
|
-
ValueError: Raised if the 'name' parameter is None.
|
258
|
-
requests.HTTPError: Raised if the HTTP request to create the organization fails.
|
259
|
-
|
260
|
-
Tags:
|
261
|
-
create, organization, api, async-job, management, important
|
262
|
-
"""
|
263
|
-
if name is None:
|
264
|
-
raise ValueError("Missing required parameter 'name'")
|
265
|
-
request_body = {
|
266
|
-
"name": name,
|
267
|
-
}
|
268
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
269
|
-
url = f"{self.base_url}/v1/organizations"
|
270
|
-
query_params = {}
|
271
|
-
response = self._post(url, data=request_body, params=query_params)
|
272
|
-
response.raise_for_status()
|
273
|
-
return response.json()
|
274
|
-
|
275
|
-
def v1_authorize_user(
|
276
|
-
self,
|
277
|
-
client_id,
|
278
|
-
response_type,
|
279
|
-
redirect_uri,
|
280
|
-
scope=None,
|
281
|
-
state=None,
|
282
|
-
response_mode=None,
|
283
|
-
code_challenge=None,
|
284
|
-
code_challenge_method=None,
|
285
|
-
) -> Any:
|
286
|
-
"""
|
287
|
-
Initiates the OAuth 2.0 authorization flow by constructing and sending an authorization request to the identity provider.
|
288
|
-
|
289
|
-
Args:
|
290
|
-
client_id: str. The client identifier issued to the application.
|
291
|
-
response_type: str. The type of response desired, typically 'code' for authorization code flow.
|
292
|
-
redirect_uri: str. The URI to which the authorization server will redirect after authorization.
|
293
|
-
scope: Optional[str]. A space-delimited list of scopes requested by the application.
|
294
|
-
state: Optional[str]. An opaque value used to maintain state between the request and the callback.
|
295
|
-
response_mode: Optional[str]. Specifies how the result should be returned to the client (e.g., 'query', 'fragment').
|
296
|
-
code_challenge: Optional[str]. Code challenge for PKCE (Proof Key for Code Exchange) to enhance security.
|
297
|
-
code_challenge_method: Optional[str]. Method used to derive code challenge (e.g., 'S256').
|
298
|
-
|
299
|
-
Returns:
|
300
|
-
dict. JSON-decoded response from the authorization endpoint, containing the authorization response or error details.
|
301
|
-
|
302
|
-
Raises:
|
303
|
-
ValueError: Raised if any of the required parameters ('client_id', 'response_type', or 'redirect_uri') is not provided.
|
304
|
-
requests.HTTPError: Raised if the HTTP request to the authorization endpoint fails (non-2xx response).
|
305
|
-
|
306
|
-
Tags:
|
307
|
-
authorize, oauth, identity, auth-flow, start
|
308
|
-
"""
|
309
|
-
if client_id is None:
|
310
|
-
raise ValueError("Missing required parameter 'client_id'")
|
311
|
-
if response_type is None:
|
312
|
-
raise ValueError("Missing required parameter 'response_type'")
|
313
|
-
if redirect_uri is None:
|
314
|
-
raise ValueError("Missing required parameter 'redirect_uri'")
|
315
|
-
url = f"{self.base_url}/v1/oauth/authorize"
|
316
|
-
query_params = {
|
317
|
-
k: v
|
318
|
-
for k, v in [
|
319
|
-
("client_id", client_id),
|
320
|
-
("response_type", response_type),
|
321
|
-
("redirect_uri", redirect_uri),
|
322
|
-
("scope", scope),
|
323
|
-
("state", state),
|
324
|
-
("response_mode", response_mode),
|
325
|
-
("code_challenge", code_challenge),
|
326
|
-
("code_challenge_method", code_challenge_method),
|
327
|
-
]
|
328
|
-
if v is not None
|
329
|
-
}
|
330
|
-
response = self._get(url, params=query_params)
|
331
|
-
response.raise_for_status()
|
332
|
-
return response.json()
|
333
|
-
|
334
|
-
def v1_list_all_snippets(self, project_ref=None) -> dict[str, Any]:
|
335
|
-
"""
|
336
|
-
Retrieves all code snippets for the specified project, or for all projects if no project reference is provided.
|
337
|
-
|
338
|
-
Args:
|
339
|
-
project_ref: Optional; a reference identifier for the project to filter snippets by. If not provided, returns snippets from all projects.
|
340
|
-
|
341
|
-
Returns:
|
342
|
-
A dictionary containing the response payload with details of the code snippets.
|
343
|
-
|
344
|
-
Raises:
|
345
|
-
requests.HTTPError: Raised if the underlying HTTP request returns an unsuccessful status code.
|
346
|
-
|
347
|
-
Tags:
|
348
|
-
list, snippets, management, api, important
|
349
|
-
"""
|
350
|
-
url = f"{self.base_url}/v1/snippets"
|
351
|
-
query_params = {
|
352
|
-
k: v for k, v in [("project_ref", project_ref)] if v is not None
|
353
|
-
}
|
354
|
-
response = self._get(url, params=query_params)
|
355
|
-
response.raise_for_status()
|
356
|
-
return response.json()
|
357
|
-
|
358
|
-
def v1_get_a_snippet(self, id) -> dict[str, Any]:
|
359
|
-
"""
|
360
|
-
Retrieves a snippet resource by its unique identifier using a GET request to the v1 endpoint.
|
361
|
-
|
362
|
-
Args:
|
363
|
-
id: The unique identifier of the snippet to retrieve. Must not be None.
|
364
|
-
|
365
|
-
Returns:
|
366
|
-
A dictionary containing the snippet data retrieved from the API.
|
367
|
-
|
368
|
-
Raises:
|
369
|
-
ValueError: If the 'id' parameter is None.
|
370
|
-
HTTPError: If the HTTP request returns an unsuccessful status code.
|
371
|
-
|
372
|
-
Tags:
|
373
|
-
get, snippet, api
|
374
|
-
"""
|
375
|
-
if id is None:
|
376
|
-
raise ValueError("Missing required parameter 'id'")
|
377
|
-
url = f"{self.base_url}/v1/snippets/{id}"
|
378
|
-
query_params = {}
|
379
|
-
response = self._get(url, params=query_params)
|
380
|
-
response.raise_for_status()
|
381
|
-
return response.json()
|
382
|
-
|
383
|
-
def v1_get_project_api_keys(self, ref) -> list[Any]:
|
384
|
-
"""
|
385
|
-
Retrieves the list of API keys associated with a specified project reference.
|
386
|
-
|
387
|
-
Args:
|
388
|
-
ref: The unique identifier of the project whose API keys are to be fetched. Must not be None.
|
389
|
-
|
390
|
-
Returns:
|
391
|
-
A list containing the API keys for the specified project.
|
392
|
-
|
393
|
-
Raises:
|
394
|
-
ValueError: Raised if the 'ref' parameter is None.
|
395
|
-
HTTPError: Raised if the HTTP request to fetch API keys fails.
|
396
|
-
|
397
|
-
Tags:
|
398
|
-
get, api-keys, project, management
|
399
|
-
"""
|
400
|
-
if ref is None:
|
401
|
-
raise ValueError("Missing required parameter 'ref'")
|
402
|
-
url = f"{self.base_url}/v1/projects/{ref}/api-keys"
|
403
|
-
query_params = {}
|
404
|
-
response = self._get(url, params=query_params)
|
405
|
-
response.raise_for_status()
|
406
|
-
return response.json()
|
407
|
-
|
408
|
-
def create_api_key(
|
409
|
-
self, ref, type, description=None, secret_jwt_template=None
|
410
|
-
) -> dict[str, Any]:
|
411
|
-
"""
|
412
|
-
Creates a new API key for the specified project with optional description and secret JWT template.
|
413
|
-
|
414
|
-
Args:
|
415
|
-
ref: str. Project reference or identifier for which the API key is created.
|
416
|
-
type: str. Type or category of the API key being created.
|
417
|
-
description: str, optional. Human-readable description of the API key.
|
418
|
-
secret_jwt_template: Any, optional. Template used to generate the secret JWT for the API key.
|
419
|
-
|
420
|
-
Returns:
|
421
|
-
dict[str, Any]: A dictionary containing the details of the newly created API key as returned by the API.
|
422
|
-
|
423
|
-
Raises:
|
424
|
-
ValueError: If 'ref' or 'type' is None.
|
425
|
-
requests.HTTPError: If the API request fails or the server returns an unsuccessful status.
|
426
|
-
|
427
|
-
Tags:
|
428
|
-
create, api-key, management, async-job, start
|
429
|
-
"""
|
430
|
-
if ref is None:
|
431
|
-
raise ValueError("Missing required parameter 'ref'")
|
432
|
-
if type is None:
|
433
|
-
raise ValueError("Missing required parameter 'type'")
|
434
|
-
request_body = {
|
435
|
-
"type": type,
|
436
|
-
"description": description,
|
437
|
-
"secret_jwt_template": secret_jwt_template,
|
438
|
-
}
|
439
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
440
|
-
url = f"{self.base_url}/v1/projects/{ref}/api-keys"
|
441
|
-
query_params = {}
|
442
|
-
response = self._post(url, data=request_body, params=query_params)
|
443
|
-
response.raise_for_status()
|
444
|
-
return response.json()
|
445
|
-
|
446
|
-
def update_api_key(
|
447
|
-
self, ref, id, description=None, secret_jwt_template=None
|
448
|
-
) -> dict[str, Any]:
|
449
|
-
"""
|
450
|
-
Updates an existing API key identified by its project reference and key ID, allowing optional update of description and secret JWT template.
|
451
|
-
|
452
|
-
Args:
|
453
|
-
ref: str. Unique project reference identifier for the API key.
|
454
|
-
id: str. Unique identifier of the API key to update.
|
455
|
-
description: Optional[str]. New description for the API key. If not provided, the description is not updated.
|
456
|
-
secret_jwt_template: Optional[Any]. New secret JWT template to associate with the API key. If not provided, this field remains unchanged.
|
457
|
-
|
458
|
-
Returns:
|
459
|
-
dict[str, Any]: The updated API key resource as a dictionary parsed from the response JSON.
|
460
|
-
|
461
|
-
Raises:
|
462
|
-
ValueError: Raised if either 'ref' or 'id' is None.
|
463
|
-
requests.HTTPError: Raised if the HTTP request to update the API key fails or returns an error status code.
|
464
|
-
|
465
|
-
Tags:
|
466
|
-
update, api-key, management, patch
|
467
|
-
"""
|
468
|
-
if ref is None:
|
469
|
-
raise ValueError("Missing required parameter 'ref'")
|
470
|
-
if id is None:
|
471
|
-
raise ValueError("Missing required parameter 'id'")
|
472
|
-
request_body = {
|
473
|
-
"description": description,
|
474
|
-
"secret_jwt_template": secret_jwt_template,
|
475
|
-
}
|
476
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
477
|
-
url = f"{self.base_url}/v1/projects/{ref}/api-keys/{id}"
|
478
|
-
query_params = {}
|
479
|
-
response = self._patch(url, data=request_body, params=query_params)
|
480
|
-
response.raise_for_status()
|
481
|
-
return response.json()
|
482
|
-
|
483
|
-
def delete_api_key(self, ref, id) -> dict[str, Any]:
|
484
|
-
"""
|
485
|
-
Deletes an API key associated with a project using the provided reference and key ID.
|
486
|
-
|
487
|
-
Args:
|
488
|
-
ref: str. The unique project reference identifier.
|
489
|
-
id: str. The API key identifier to delete.
|
490
|
-
|
491
|
-
Returns:
|
492
|
-
dict[str, Any]: The response from the API as a dictionary, typically containing status or metadata about the deleted API key.
|
493
|
-
|
494
|
-
Raises:
|
495
|
-
ValueError: Raised if 'ref' or 'id' is None.
|
496
|
-
requests.HTTPError: Raised if the HTTP response from the deletion request contains an unsuccessful status code.
|
497
|
-
|
498
|
-
Tags:
|
499
|
-
delete, api-key, management
|
500
|
-
"""
|
501
|
-
if ref is None:
|
502
|
-
raise ValueError("Missing required parameter 'ref'")
|
503
|
-
if id is None:
|
504
|
-
raise ValueError("Missing required parameter 'id'")
|
505
|
-
url = f"{self.base_url}/v1/projects/{ref}/api-keys/{id}"
|
506
|
-
query_params = {}
|
507
|
-
response = self._delete(url, params=query_params)
|
508
|
-
response.raise_for_status()
|
509
|
-
return response.json()
|
510
|
-
|
511
|
-
def v1_list_all_branches(self, ref) -> list[Any]:
|
512
|
-
"""
|
513
|
-
Retrieves a list of all branches for the specified project reference using the v1 API.
|
514
|
-
|
515
|
-
Args:
|
516
|
-
ref: The project reference identifier (str) for which branches are to be listed. Must not be None.
|
517
|
-
|
518
|
-
Returns:
|
519
|
-
A list containing the branch information returned by the API. Each element corresponds to a branch, as parsed from the response JSON.
|
520
|
-
|
521
|
-
Raises:
|
522
|
-
ValueError: If the required parameter 'ref' is None.
|
523
|
-
requests.HTTPError: If the HTTP request to the API fails or returns an error status code.
|
524
|
-
|
525
|
-
Tags:
|
526
|
-
list, branches, api, project-management, important
|
527
|
-
"""
|
528
|
-
if ref is None:
|
529
|
-
raise ValueError("Missing required parameter 'ref'")
|
530
|
-
url = f"{self.base_url}/v1/projects/{ref}/branches"
|
531
|
-
query_params = {}
|
532
|
-
response = self._get(url, params=query_params)
|
533
|
-
response.raise_for_status()
|
534
|
-
return response.json()
|
535
|
-
|
536
|
-
def v1_create_a_branch(
|
537
|
-
self,
|
538
|
-
ref,
|
539
|
-
branch_name,
|
540
|
-
desired_instance_size=None,
|
541
|
-
release_channel=None,
|
542
|
-
postgres_engine=None,
|
543
|
-
git_branch=None,
|
544
|
-
persistent=None,
|
545
|
-
region=None,
|
546
|
-
) -> dict[str, Any]:
|
547
|
-
"""
|
548
|
-
Creates a new branch for a specified project, configuring options such as instance size, release channel, and region.
|
549
|
-
|
550
|
-
Args:
|
551
|
-
ref: str. The reference ID or name of the parent project to which the branch will be added. Required.
|
552
|
-
branch_name: str. The name for the new branch to be created. Required.
|
553
|
-
desired_instance_size: str or None. Optional. The desired size of the instance for the new branch.
|
554
|
-
release_channel: str or None. Optional. The release channel for the new branch (e.g., 'stable', 'beta').
|
555
|
-
postgres_engine: str or None. Optional. The PostgreSQL engine version or type for the branch.
|
556
|
-
git_branch: str or None. Optional. The upstream Git branch to link with the new branch.
|
557
|
-
persistent: bool or None. Optional. Indicates whether the branch should be persistent.
|
558
|
-
region: str or None. Optional. The deployment region for the new branch.
|
559
|
-
|
560
|
-
Returns:
|
561
|
-
dict[str, Any]: The API response as a dictionary containing details and metadata about the newly created branch.
|
562
|
-
|
563
|
-
Raises:
|
564
|
-
ValueError: If 'ref' or 'branch_name' is not provided.
|
565
|
-
requests.HTTPError: If the API request fails or returns an unsuccessful status code.
|
566
|
-
|
567
|
-
Tags:
|
568
|
-
create, branch, management, api, start, important
|
569
|
-
"""
|
570
|
-
if ref is None:
|
571
|
-
raise ValueError("Missing required parameter 'ref'")
|
572
|
-
if branch_name is None:
|
573
|
-
raise ValueError("Missing required parameter 'branch_name'")
|
574
|
-
request_body = {
|
575
|
-
"desired_instance_size": desired_instance_size,
|
576
|
-
"release_channel": release_channel,
|
577
|
-
"postgres_engine": postgres_engine,
|
578
|
-
"branch_name": branch_name,
|
579
|
-
"git_branch": git_branch,
|
580
|
-
"persistent": persistent,
|
581
|
-
"region": region,
|
582
|
-
}
|
583
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
584
|
-
url = f"{self.base_url}/v1/projects/{ref}/branches"
|
585
|
-
query_params = {}
|
586
|
-
response = self._post(url, data=request_body, params=query_params)
|
587
|
-
response.raise_for_status()
|
588
|
-
return response.json()
|
589
|
-
|
590
|
-
def v1_disable_preview_branching(self, ref) -> Any:
|
591
|
-
"""
|
592
|
-
Disables preview branching for a specified project reference by sending a DELETE request to the corresponding API endpoint.
|
593
|
-
|
594
|
-
Args:
|
595
|
-
ref: str. The project reference identifier for which preview branching will be disabled.
|
596
|
-
|
597
|
-
Returns:
|
598
|
-
Any. The parsed JSON response from the API after disabling preview branching.
|
599
|
-
|
600
|
-
Raises:
|
601
|
-
ValueError: Raised if the 'ref' parameter is None.
|
602
|
-
requests.exceptions.HTTPError: Raised if the HTTP request to disable preview branching fails.
|
603
|
-
|
604
|
-
Tags:
|
605
|
-
disable, management, api
|
606
|
-
"""
|
607
|
-
if ref is None:
|
608
|
-
raise ValueError("Missing required parameter 'ref'")
|
609
|
-
url = f"{self.base_url}/v1/projects/{ref}/branches"
|
610
|
-
query_params = {}
|
611
|
-
response = self._delete(url, params=query_params)
|
612
|
-
response.raise_for_status()
|
613
|
-
return response.json()
|
614
|
-
|
615
|
-
def v1_get_hostname_config(self, ref) -> dict[str, Any]:
|
616
|
-
"""
|
617
|
-
Retrieves the configuration for a custom hostname associated with a given project reference.
|
618
|
-
|
619
|
-
Args:
|
620
|
-
ref: str. The unique project reference identifier to query the custom hostname configuration for.
|
621
|
-
|
622
|
-
Returns:
|
623
|
-
dict. A dictionary containing the configuration details of the project's custom hostname as returned by the API.
|
624
|
-
|
625
|
-
Raises:
|
626
|
-
ValueError: If the 'ref' parameter is None.
|
627
|
-
requests.HTTPError: If the HTTP request to fetch the hostname configuration fails.
|
628
|
-
|
629
|
-
Tags:
|
630
|
-
get, hostname-config, management, api
|
631
|
-
"""
|
632
|
-
if ref is None:
|
633
|
-
raise ValueError("Missing required parameter 'ref'")
|
634
|
-
url = f"{self.base_url}/v1/projects/{ref}/custom-hostname"
|
635
|
-
query_params = {}
|
636
|
-
response = self._get(url, params=query_params)
|
637
|
-
response.raise_for_status()
|
638
|
-
return response.json()
|
639
|
-
|
640
|
-
def v1_verify_dns_config(self, ref) -> dict[str, Any]:
|
641
|
-
"""
|
642
|
-
Triggers DNS configuration verification for a specified project reference via a POST request.
|
643
|
-
|
644
|
-
Args:
|
645
|
-
ref: The project reference or identifier for which to verify DNS configuration.
|
646
|
-
|
647
|
-
Returns:
|
648
|
-
A dictionary containing the JSON response from the verification API endpoint.
|
649
|
-
|
650
|
-
Raises:
|
651
|
-
ValueError: If the 'ref' parameter is None.
|
652
|
-
requests.HTTPError: If the HTTP request to the verification endpoint fails (non-2xx response).
|
653
|
-
|
654
|
-
Tags:
|
655
|
-
verify, dns, config, api
|
656
|
-
"""
|
657
|
-
if ref is None:
|
658
|
-
raise ValueError("Missing required parameter 'ref'")
|
659
|
-
url = f"{self.base_url}/v1/projects/{ref}/custom-hostname/reverify"
|
660
|
-
query_params = {}
|
661
|
-
response = self._post(url, data={}, params=query_params)
|
662
|
-
response.raise_for_status()
|
663
|
-
return response.json()
|
664
|
-
|
665
|
-
def v1_activate_custom_hostname(self, ref) -> dict[str, Any]:
|
666
|
-
"""
|
667
|
-
Activates a custom hostname for the specified project reference using the v1 API endpoint.
|
668
|
-
|
669
|
-
Args:
|
670
|
-
ref: The project reference or identifier for which to activate the custom hostname. Must not be None.
|
671
|
-
|
672
|
-
Returns:
|
673
|
-
A dictionary containing the JSON response from the API after activating the custom hostname.
|
674
|
-
|
675
|
-
Raises:
|
676
|
-
ValueError: If the required parameter 'ref' is None.
|
677
|
-
requests.HTTPError: If the HTTP request to the API fails or returns an unsuccessful status code.
|
678
|
-
|
679
|
-
Tags:
|
680
|
-
activate, custom-hostname, api, management
|
681
|
-
"""
|
682
|
-
if ref is None:
|
683
|
-
raise ValueError("Missing required parameter 'ref'")
|
684
|
-
url = f"{self.base_url}/v1/projects/{ref}/custom-hostname/activate"
|
685
|
-
query_params = {}
|
686
|
-
response = self._post(url, data={}, params=query_params)
|
687
|
-
response.raise_for_status()
|
688
|
-
return response.json()
|
689
|
-
|
690
|
-
def v1_list_all_network_bans(self, ref) -> dict[str, Any]:
|
691
|
-
"""
|
692
|
-
Retrieves all network bans associated with the specified project reference.
|
693
|
-
|
694
|
-
Args:
|
695
|
-
ref: str. The project reference identifier used to specify which project's network bans to retrieve.
|
696
|
-
|
697
|
-
Returns:
|
698
|
-
dict. A dictionary containing the details of all network bans for the specified project.
|
699
|
-
|
700
|
-
Raises:
|
701
|
-
ValueError: Raised if the 'ref' parameter is None.
|
702
|
-
requests.HTTPError: Raised if the HTTP request returned an unsuccessful status code.
|
703
|
-
|
704
|
-
Tags:
|
705
|
-
list, network-bans, management, api
|
706
|
-
"""
|
707
|
-
if ref is None:
|
708
|
-
raise ValueError("Missing required parameter 'ref'")
|
709
|
-
url = f"{self.base_url}/v1/projects/{ref}/network-bans/retrieve"
|
710
|
-
query_params = {}
|
711
|
-
response = self._post(url, data={}, params=query_params)
|
712
|
-
response.raise_for_status()
|
713
|
-
return response.json()
|
714
|
-
|
715
|
-
def v1_delete_network_bans(self, ref, ipv4_addresses) -> Any:
|
716
|
-
"""
|
717
|
-
Deletes specified IPv4 addresses from the network ban list for a given project reference.
|
718
|
-
|
719
|
-
Args:
|
720
|
-
ref: str. The unique project reference identifier.
|
721
|
-
ipv4_addresses: List[str]. List of IPv4 addresses to be removed from the network ban list.
|
722
|
-
|
723
|
-
Returns:
|
724
|
-
Any. The parsed JSON response from the API indicating the result of the delete operation.
|
725
|
-
|
726
|
-
Raises:
|
727
|
-
ValueError: Raised if the 'ref' or 'ipv4_addresses' parameter is None.
|
728
|
-
requests.HTTPError: Raised if the HTTP request to delete network bans fails.
|
729
|
-
|
730
|
-
Tags:
|
731
|
-
delete, network-bans, management, api
|
732
|
-
"""
|
733
|
-
if ref is None:
|
734
|
-
raise ValueError("Missing required parameter 'ref'")
|
735
|
-
if ipv4_addresses is None:
|
736
|
-
raise ValueError("Missing required parameter 'ipv4_addresses'")
|
737
|
-
request_body = {
|
738
|
-
"ipv4_addresses": ipv4_addresses,
|
739
|
-
}
|
740
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
741
|
-
url = f"{self.base_url}/v1/projects/{ref}/network-bans"
|
742
|
-
query_params = {}
|
743
|
-
response = self._delete(url, params=query_params)
|
744
|
-
response.raise_for_status()
|
745
|
-
return response.json()
|
746
|
-
|
747
|
-
def v1_get_network_restrictions(self, ref) -> dict[str, Any]:
|
748
|
-
"""
|
749
|
-
Retrieves network restriction settings for a given project reference.
|
750
|
-
|
751
|
-
Args:
|
752
|
-
ref: str. The unique reference identifier of the project whose network restrictions are to be fetched.
|
753
|
-
|
754
|
-
Returns:
|
755
|
-
dict. The network restriction settings associated with the specified project, as a parsed JSON object.
|
756
|
-
|
757
|
-
Raises:
|
758
|
-
ValueError: Raised if the 'ref' parameter is None.
|
759
|
-
requests.HTTPError: Raised if the HTTP request to fetch network restrictions returns an unsuccessful status code.
|
760
|
-
|
761
|
-
Tags:
|
762
|
-
get, network-restrictions, management
|
763
|
-
"""
|
764
|
-
if ref is None:
|
765
|
-
raise ValueError("Missing required parameter 'ref'")
|
766
|
-
url = f"{self.base_url}/v1/projects/{ref}/network-restrictions"
|
767
|
-
query_params = {}
|
768
|
-
response = self._get(url, params=query_params)
|
769
|
-
response.raise_for_status()
|
770
|
-
return response.json()
|
771
|
-
|
772
|
-
def v1_update_network_restrictions(
|
773
|
-
self, ref, dbAllowedCidrs=None, dbAllowedCidrsV6=None
|
774
|
-
) -> dict[str, Any]:
|
775
|
-
"""
|
776
|
-
Updates network access restrictions for the specified project by applying the given allowed IPv4 and IPv6 CIDR ranges.
|
777
|
-
|
778
|
-
Args:
|
779
|
-
ref: str. The project reference identifier. Required.
|
780
|
-
dbAllowedCidrs: Optional[list[str]]. A list of allowed IPv4 CIDR ranges for database access. Defaults to None.
|
781
|
-
dbAllowedCidrsV6: Optional[list[str]]. A list of allowed IPv6 CIDR ranges for database access. Defaults to None.
|
782
|
-
|
783
|
-
Returns:
|
784
|
-
dict[str, Any]: The response from the API after updating network restrictions.
|
785
|
-
|
786
|
-
Raises:
|
787
|
-
ValueError: If the 'ref' parameter is not provided.
|
788
|
-
requests.HTTPError: If the HTTP request fails or an error status is returned by the API.
|
789
|
-
|
790
|
-
Tags:
|
791
|
-
update, network-restrictions, management, api
|
792
|
-
"""
|
793
|
-
if ref is None:
|
794
|
-
raise ValueError("Missing required parameter 'ref'")
|
795
|
-
request_body = {
|
796
|
-
"dbAllowedCidrs": dbAllowedCidrs,
|
797
|
-
"dbAllowedCidrsV6": dbAllowedCidrsV6,
|
798
|
-
}
|
799
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
800
|
-
url = f"{self.base_url}/v1/projects/{ref}/network-restrictions/apply"
|
801
|
-
query_params = {}
|
802
|
-
response = self._post(url, data=request_body, params=query_params)
|
803
|
-
response.raise_for_status()
|
804
|
-
return response.json()
|
805
|
-
|
806
|
-
def v1_get_pgsodium_config(self, ref) -> dict[str, Any]:
|
807
|
-
"""
|
808
|
-
Retrieves the pgSodium configuration for a specified project reference from the v1 API endpoint.
|
809
|
-
|
810
|
-
Args:
|
811
|
-
ref: str. The project reference identifier for which to fetch the pgSodium configuration.
|
812
|
-
|
813
|
-
Returns:
|
814
|
-
dict. The pgSodium configuration as parsed from the API response JSON.
|
815
|
-
|
816
|
-
Raises:
|
817
|
-
ValueError: If the 'ref' parameter is None.
|
818
|
-
requests.HTTPError: If the HTTP request fails or returns an unsuccessful status code.
|
819
|
-
|
820
|
-
Tags:
|
821
|
-
get, pgsodium, config, api
|
822
|
-
"""
|
823
|
-
if ref is None:
|
824
|
-
raise ValueError("Missing required parameter 'ref'")
|
825
|
-
url = f"{self.base_url}/v1/projects/{ref}/pgsodium"
|
826
|
-
query_params = {}
|
827
|
-
response = self._get(url, params=query_params)
|
828
|
-
response.raise_for_status()
|
829
|
-
return response.json()
|
830
|
-
|
831
|
-
def v1_update_pgsodium_config(self, ref, root_key) -> dict[str, Any]:
|
832
|
-
"""
|
833
|
-
Updates the pgsodium configuration for a specified project reference using the provided root key.
|
834
|
-
|
835
|
-
Args:
|
836
|
-
ref: str. The unique project reference identifier for which the pgsodium configuration will be updated.
|
837
|
-
root_key: str. The root encryption key to set in the pgsodium configuration.
|
838
|
-
|
839
|
-
Returns:
|
840
|
-
dict. The server's JSON response confirming the updated pgsodium configuration.
|
841
|
-
|
842
|
-
Raises:
|
843
|
-
ValueError: Raised if 'ref' or 'root_key' is None.
|
844
|
-
requests.HTTPError: Raised if the HTTP request fails with an unsuccessful status code.
|
845
|
-
|
846
|
-
Tags:
|
847
|
-
update, pgsodium, config, management
|
848
|
-
"""
|
849
|
-
if ref is None:
|
850
|
-
raise ValueError("Missing required parameter 'ref'")
|
851
|
-
if root_key is None:
|
852
|
-
raise ValueError("Missing required parameter 'root_key'")
|
853
|
-
request_body = {
|
854
|
-
"root_key": root_key,
|
855
|
-
}
|
856
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
857
|
-
url = f"{self.base_url}/v1/projects/{ref}/pgsodium"
|
858
|
-
query_params = {}
|
859
|
-
response = self._put(url, data=request_body, params=query_params)
|
860
|
-
response.raise_for_status()
|
861
|
-
return response.json()
|
862
|
-
|
863
|
-
def v1_get_postgrest_service_config(self, ref) -> dict[str, Any]:
|
864
|
-
"""
|
865
|
-
Retrieves the configuration details for the PostgREST service associated with the specified project reference.
|
866
|
-
|
867
|
-
Args:
|
868
|
-
ref: str. The unique reference identifier for the project whose PostgREST configuration is to be retrieved.
|
869
|
-
|
870
|
-
Returns:
|
871
|
-
dict[str, Any]: A dictionary containing the PostgREST service configuration details for the specified project.
|
872
|
-
|
873
|
-
Raises:
|
874
|
-
ValueError: Raised if the 'ref' parameter is None.
|
875
|
-
requests.HTTPError: Raised if the HTTP request to fetch the PostgREST configuration fails.
|
876
|
-
|
877
|
-
Tags:
|
878
|
-
fetch, postgrest, service-config, project
|
879
|
-
"""
|
880
|
-
if ref is None:
|
881
|
-
raise ValueError("Missing required parameter 'ref'")
|
882
|
-
url = f"{self.base_url}/v1/projects/{ref}/postgrest"
|
883
|
-
query_params = {}
|
884
|
-
response = self._get(url, params=query_params)
|
885
|
-
response.raise_for_status()
|
886
|
-
return response.json()
|
887
|
-
|
888
|
-
def v1_update_postgrest_service_config(
|
889
|
-
self,
|
890
|
-
ref,
|
891
|
-
max_rows=None,
|
892
|
-
db_pool=None,
|
893
|
-
db_extra_search_path=None,
|
894
|
-
db_schema=None,
|
895
|
-
) -> dict[str, Any]:
|
896
|
-
"""
|
897
|
-
Updates the configuration settings for a PostgREST service for a specified project.
|
898
|
-
|
899
|
-
Args:
|
900
|
-
ref: str. The unique identifier of the project whose PostgREST service configuration will be updated.
|
901
|
-
max_rows: Optional[int]. The maximum number of rows that the PostgREST service will return per request. If None, the setting remains unchanged.
|
902
|
-
db_pool: Optional[int]. The number of database connections in the pool for the PostgREST service. If None, the setting remains unchanged.
|
903
|
-
db_extra_search_path: Optional[str]. Additional search path for the database schema. If None, the setting remains unchanged.
|
904
|
-
db_schema: Optional[str]. The database schema to be used by the PostgREST service. If None, the setting remains unchanged.
|
905
|
-
|
906
|
-
Returns:
|
907
|
-
dict[str, Any]: The updated configuration of the PostgREST service as returned by the backend API.
|
908
|
-
|
909
|
-
Raises:
|
910
|
-
ValueError: Raised if the 'ref' parameter is not provided.
|
911
|
-
requests.HTTPError: Raised if the server responds with an error status code.
|
912
|
-
|
913
|
-
Tags:
|
914
|
-
update, postgrest, service-config, management, api
|
915
|
-
"""
|
916
|
-
if ref is None:
|
917
|
-
raise ValueError("Missing required parameter 'ref'")
|
918
|
-
request_body = {
|
919
|
-
"max_rows": max_rows,
|
920
|
-
"db_pool": db_pool,
|
921
|
-
"db_extra_search_path": db_extra_search_path,
|
922
|
-
"db_schema": db_schema,
|
923
|
-
}
|
924
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
925
|
-
url = f"{self.base_url}/v1/projects/{ref}/postgrest"
|
926
|
-
query_params = {}
|
927
|
-
response = self._patch(url, data=request_body, params=query_params)
|
928
|
-
response.raise_for_status()
|
929
|
-
return response.json()
|
930
|
-
|
931
|
-
def v1_delete_a_project(self, ref) -> dict[str, Any]:
|
932
|
-
"""
|
933
|
-
Deletes a project identified by its reference and returns the API response as a dictionary.
|
934
|
-
|
935
|
-
Args:
|
936
|
-
ref: str. The unique identifier or reference of the project to be deleted.
|
937
|
-
|
938
|
-
Returns:
|
939
|
-
dict[str, Any]: The response from the API as a dictionary containing information about the deleted project.
|
940
|
-
|
941
|
-
Raises:
|
942
|
-
ValueError: If the 'ref' parameter is None.
|
943
|
-
requests.HTTPError: If the HTTP DELETE request returns an unsuccessful status code.
|
944
|
-
|
945
|
-
Tags:
|
946
|
-
delete, project-management, api
|
947
|
-
"""
|
948
|
-
if ref is None:
|
949
|
-
raise ValueError("Missing required parameter 'ref'")
|
950
|
-
url = f"{self.base_url}/v1/projects/{ref}"
|
951
|
-
query_params = {}
|
952
|
-
response = self._delete(url, params=query_params)
|
953
|
-
response.raise_for_status()
|
954
|
-
return response.json()
|
955
|
-
|
956
|
-
def v1_list_all_secrets(self, ref) -> list[Any]:
|
957
|
-
"""
|
958
|
-
Lists all secrets for the specified project reference via the v1 API.
|
959
|
-
|
960
|
-
Args:
|
961
|
-
ref: The project reference identifier as a string. Must not be None.
|
962
|
-
|
963
|
-
Returns:
|
964
|
-
A list containing the secrets associated with the specified project.
|
965
|
-
|
966
|
-
Raises:
|
967
|
-
ValueError: If the 'ref' parameter is None.
|
968
|
-
requests.HTTPError: If the underlying HTTP request fails with a non-success status code.
|
969
|
-
|
970
|
-
Tags:
|
971
|
-
list, secrets, management, v1
|
972
|
-
"""
|
973
|
-
if ref is None:
|
974
|
-
raise ValueError("Missing required parameter 'ref'")
|
975
|
-
url = f"{self.base_url}/v1/projects/{ref}/secrets"
|
976
|
-
query_params = {}
|
977
|
-
response = self._get(url, params=query_params)
|
978
|
-
response.raise_for_status()
|
979
|
-
return response.json()
|
980
|
-
|
981
|
-
def v1_bulk_create_secrets(self, ref, items) -> Any:
|
982
|
-
"""
|
983
|
-
Creates multiple secrets for a specified project reference in a single batch request.
|
984
|
-
|
985
|
-
Args:
|
986
|
-
ref: The project reference identifier as a string. Must not be None.
|
987
|
-
items: A list or array of secret objects to create in bulk. Must not be None.
|
988
|
-
|
989
|
-
Returns:
|
990
|
-
The JSON-decoded response from the server containing the results of the bulk secrets creation.
|
991
|
-
|
992
|
-
Raises:
|
993
|
-
ValueError: If either 'ref' or 'items' is None.
|
994
|
-
requests.HTTPError: If the HTTP response from the server indicates an unsuccessful status code.
|
995
|
-
|
996
|
-
Tags:
|
997
|
-
bulk-create, secrets, batch, api
|
998
|
-
"""
|
999
|
-
if ref is None:
|
1000
|
-
raise ValueError("Missing required parameter 'ref'")
|
1001
|
-
if items is None:
|
1002
|
-
raise ValueError("Missing required parameter 'items'")
|
1003
|
-
request_body = items
|
1004
|
-
url = f"{self.base_url}/v1/projects/{ref}/secrets"
|
1005
|
-
query_params = {}
|
1006
|
-
response = self._post(url, data=request_body, params=query_params)
|
1007
|
-
response.raise_for_status()
|
1008
|
-
return response.json()
|
1009
|
-
|
1010
|
-
def v1_bulk_delete_secrets(self, ref, items) -> dict[str, Any]:
|
1011
|
-
"""
|
1012
|
-
Deletes multiple secrets from a given project by making a bulk delete request.
|
1013
|
-
|
1014
|
-
Args:
|
1015
|
-
ref: str. The unique reference or identifier of the project containing the secrets.
|
1016
|
-
items: list. A list of secret identifiers to delete from the project.
|
1017
|
-
|
1018
|
-
Returns:
|
1019
|
-
dict. The parsed JSON response from the server after the bulk delete operation.
|
1020
|
-
|
1021
|
-
Raises:
|
1022
|
-
ValueError: If the 'ref' or 'items' parameter is None.
|
1023
|
-
HTTPError: If the HTTP request to delete secrets fails with a non-successful status code.
|
1024
|
-
|
1025
|
-
Tags:
|
1026
|
-
delete, bulk, secrets, management, api
|
1027
|
-
"""
|
1028
|
-
if ref is None:
|
1029
|
-
raise ValueError("Missing required parameter 'ref'")
|
1030
|
-
if items is None:
|
1031
|
-
raise ValueError("Missing required parameter 'items'")
|
1032
|
-
url = f"{self.base_url}/v1/projects/{ref}/secrets"
|
1033
|
-
query_params = {}
|
1034
|
-
response = self._delete(url, params=query_params)
|
1035
|
-
response.raise_for_status()
|
1036
|
-
return response.json()
|
1037
|
-
|
1038
|
-
def v1_get_ssl_enforcement_config(self, ref) -> dict[str, Any]:
|
1039
|
-
"""
|
1040
|
-
Retrieves the SSL enforcement configuration for the specified project.
|
1041
|
-
|
1042
|
-
Args:
|
1043
|
-
ref: str. The unique identifier of the project for which to fetch the SSL enforcement configuration.
|
1044
|
-
|
1045
|
-
Returns:
|
1046
|
-
dict. The SSL enforcement configuration as a parsed JSON dictionary.
|
1047
|
-
|
1048
|
-
Raises:
|
1049
|
-
ValueError: If the 'ref' parameter is None.
|
1050
|
-
requests.HTTPError: If the HTTP request to fetch the configuration fails (i.e., non-2xx response code).
|
1051
|
-
|
1052
|
-
Tags:
|
1053
|
-
get, ssl-enforcement, config, project, api, management
|
1054
|
-
"""
|
1055
|
-
if ref is None:
|
1056
|
-
raise ValueError("Missing required parameter 'ref'")
|
1057
|
-
url = f"{self.base_url}/v1/projects/{ref}/ssl-enforcement"
|
1058
|
-
query_params = {}
|
1059
|
-
response = self._get(url, params=query_params)
|
1060
|
-
response.raise_for_status()
|
1061
|
-
return response.json()
|
1062
|
-
|
1063
|
-
def v1_update_ssl_enforcement_config(self, ref, requestedConfig) -> dict[str, Any]:
|
1064
|
-
"""
|
1065
|
-
Updates the SSL enforcement configuration for the specified project reference.
|
1066
|
-
|
1067
|
-
Args:
|
1068
|
-
ref: str. The unique project reference identifier to update the SSL enforcement configuration for.
|
1069
|
-
requestedConfig: Any. The desired SSL enforcement configuration settings to apply.
|
1070
|
-
|
1071
|
-
Returns:
|
1072
|
-
dict[str, Any]: The response payload containing the updated SSL enforcement configuration details.
|
1073
|
-
|
1074
|
-
Raises:
|
1075
|
-
ValueError: If the 'ref' or 'requestedConfig' argument is None.
|
1076
|
-
requests.HTTPError: If the HTTP request to update the configuration fails.
|
1077
|
-
|
1078
|
-
Tags:
|
1079
|
-
update, ssl-enforcement, management, api
|
1080
|
-
"""
|
1081
|
-
if ref is None:
|
1082
|
-
raise ValueError("Missing required parameter 'ref'")
|
1083
|
-
if requestedConfig is None:
|
1084
|
-
raise ValueError("Missing required parameter 'requestedConfig'")
|
1085
|
-
request_body = {
|
1086
|
-
"requestedConfig": requestedConfig,
|
1087
|
-
}
|
1088
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
1089
|
-
url = f"{self.base_url}/v1/projects/{ref}/ssl-enforcement"
|
1090
|
-
query_params = {}
|
1091
|
-
response = self._put(url, data=request_body, params=query_params)
|
1092
|
-
response.raise_for_status()
|
1093
|
-
return response.json()
|
1094
|
-
|
1095
|
-
def v1_generate_typescript_types(
|
1096
|
-
self, ref, included_schemas=None
|
1097
|
-
) -> dict[str, Any]:
|
1098
|
-
"""
|
1099
|
-
Generates TypeScript type definitions for a specified project reference, optionally including specific schemas.
|
1100
|
-
|
1101
|
-
Args:
|
1102
|
-
ref: str. The project reference for which TypeScript types are to be generated.
|
1103
|
-
included_schemas: Optional[list[str]]. List of schema names to include in the generated TypeScript types. If None, all schemas are included.
|
1104
|
-
|
1105
|
-
Returns:
|
1106
|
-
dict[str, Any]: A dictionary containing the generated TypeScript type definitions.
|
1107
|
-
|
1108
|
-
Raises:
|
1109
|
-
ValueError: If the required 'ref' parameter is not provided.
|
1110
|
-
requests.HTTPError: If the HTTP request to the API fails or returns an unsuccessful status code.
|
1111
|
-
|
1112
|
-
Tags:
|
1113
|
-
generate, typescript-types, api, ai
|
1114
|
-
"""
|
1115
|
-
if ref is None:
|
1116
|
-
raise ValueError("Missing required parameter 'ref'")
|
1117
|
-
url = f"{self.base_url}/v1/projects/{ref}/types/typescript"
|
1118
|
-
query_params = {
|
1119
|
-
k: v for k, v in [("included_schemas", included_schemas)] if v is not None
|
1120
|
-
}
|
1121
|
-
response = self._get(url, params=query_params)
|
1122
|
-
response.raise_for_status()
|
1123
|
-
return response.json()
|
1124
|
-
|
1125
|
-
def v1_get_vanity_subdomain_config(self, ref) -> dict[str, Any]:
|
1126
|
-
"""
|
1127
|
-
Retrieve the vanity subdomain configuration for a given project reference.
|
1128
|
-
|
1129
|
-
Args:
|
1130
|
-
ref: str. The unique identifier of the project whose vanity subdomain configuration is to be retrieved.
|
1131
|
-
|
1132
|
-
Returns:
|
1133
|
-
dict. A dictionary containing the vanity subdomain configuration data for the specified project.
|
1134
|
-
|
1135
|
-
Raises:
|
1136
|
-
ValueError: If the 'ref' parameter is None.
|
1137
|
-
requests.HTTPError: If the HTTP request to retrieve the configuration fails.
|
1138
|
-
|
1139
|
-
Tags:
|
1140
|
-
get, fetch, vanity-subdomain, project-management
|
1141
|
-
"""
|
1142
|
-
if ref is None:
|
1143
|
-
raise ValueError("Missing required parameter 'ref'")
|
1144
|
-
url = f"{self.base_url}/v1/projects/{ref}/vanity-subdomain"
|
1145
|
-
query_params = {}
|
1146
|
-
response = self._get(url, params=query_params)
|
1147
|
-
response.raise_for_status()
|
1148
|
-
return response.json()
|
1149
|
-
|
1150
|
-
def v1_deactivate_vanity_subdomain_config(self, ref) -> Any:
|
1151
|
-
"""
|
1152
|
-
Deactivates the vanity subdomain configuration for a specified project reference.
|
1153
|
-
|
1154
|
-
Args:
|
1155
|
-
ref: The unique reference identifier for the project whose vanity subdomain configuration should be deactivated.
|
1156
|
-
|
1157
|
-
Returns:
|
1158
|
-
A dictionary containing the API response data after deactivation.
|
1159
|
-
|
1160
|
-
Raises:
|
1161
|
-
ValueError: Raised if the 'ref' parameter is None.
|
1162
|
-
requests.exceptions.HTTPError: Raised if the HTTP request to deactivate the vanity subdomain configuration fails.
|
1163
|
-
|
1164
|
-
Tags:
|
1165
|
-
deactivate, vanity-subdomain, management, api
|
1166
|
-
"""
|
1167
|
-
if ref is None:
|
1168
|
-
raise ValueError("Missing required parameter 'ref'")
|
1169
|
-
url = f"{self.base_url}/v1/projects/{ref}/vanity-subdomain"
|
1170
|
-
query_params = {}
|
1171
|
-
response = self._delete(url, params=query_params)
|
1172
|
-
response.raise_for_status()
|
1173
|
-
return response.json()
|
1174
|
-
|
1175
|
-
def v1_check_vanity_subdomain_availability(
|
1176
|
-
self, ref, vanity_subdomain
|
1177
|
-
) -> dict[str, Any]:
|
1178
|
-
"""
|
1179
|
-
Checks the availability of a specified vanity subdomain for a given project reference.
|
1180
|
-
|
1181
|
-
Args:
|
1182
|
-
ref: str. The unique reference identifier for the project.
|
1183
|
-
vanity_subdomain: str. The desired vanity subdomain to check for availability.
|
1184
|
-
|
1185
|
-
Returns:
|
1186
|
-
dict[str, Any]: A dictionary containing the availability status and related information for the requested vanity subdomain.
|
1187
|
-
|
1188
|
-
Raises:
|
1189
|
-
ValueError: Raised if 'ref' or 'vanity_subdomain' is None.
|
1190
|
-
requests.HTTPError: Raised if the HTTP request to the API endpoint fails or returns an unsuccessful status code.
|
1191
|
-
|
1192
|
-
Tags:
|
1193
|
-
check, async-job, management
|
1194
|
-
"""
|
1195
|
-
if ref is None:
|
1196
|
-
raise ValueError("Missing required parameter 'ref'")
|
1197
|
-
if vanity_subdomain is None:
|
1198
|
-
raise ValueError("Missing required parameter 'vanity_subdomain'")
|
1199
|
-
request_body = {
|
1200
|
-
"vanity_subdomain": vanity_subdomain,
|
1201
|
-
}
|
1202
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
1203
|
-
url = f"{self.base_url}/v1/projects/{ref}/vanity-subdomain/check-availability"
|
1204
|
-
query_params = {}
|
1205
|
-
response = self._post(url, data=request_body, params=query_params)
|
1206
|
-
response.raise_for_status()
|
1207
|
-
return response.json()
|
1208
|
-
|
1209
|
-
def v1_activate_vanity_subdomain_config(
|
1210
|
-
self, ref, vanity_subdomain
|
1211
|
-
) -> dict[str, Any]:
|
1212
|
-
"""
|
1213
|
-
Activates the vanity subdomain configuration for a specified project reference.
|
1214
|
-
|
1215
|
-
Args:
|
1216
|
-
ref: str. The unique identifier of the project whose vanity subdomain configuration should be activated.
|
1217
|
-
vanity_subdomain: str. The vanity subdomain to activate for the given project.
|
1218
|
-
|
1219
|
-
Returns:
|
1220
|
-
dict. The JSON response from the API after attempting to activate the vanity subdomain configuration.
|
1221
|
-
|
1222
|
-
Raises:
|
1223
|
-
ValueError: Raised if either 'ref' or 'vanity_subdomain' is None.
|
1224
|
-
HTTPError: Raised if the HTTP request to activate the vanity subdomain configuration fails.
|
1225
|
-
|
1226
|
-
Tags:
|
1227
|
-
activate, vanity-subdomain, management, api
|
1228
|
-
"""
|
1229
|
-
if ref is None:
|
1230
|
-
raise ValueError("Missing required parameter 'ref'")
|
1231
|
-
if vanity_subdomain is None:
|
1232
|
-
raise ValueError("Missing required parameter 'vanity_subdomain'")
|
1233
|
-
request_body = {
|
1234
|
-
"vanity_subdomain": vanity_subdomain,
|
1235
|
-
}
|
1236
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
1237
|
-
url = f"{self.base_url}/v1/projects/{ref}/vanity-subdomain/activate"
|
1238
|
-
query_params = {}
|
1239
|
-
response = self._post(url, data=request_body, params=query_params)
|
1240
|
-
response.raise_for_status()
|
1241
|
-
return response.json()
|
1242
|
-
|
1243
|
-
def v1_upgrade_postgres_version(
|
1244
|
-
self, ref, release_channel, target_version
|
1245
|
-
) -> dict[str, Any]:
|
1246
|
-
"""
|
1247
|
-
Initiates an upgrade of a PostgreSQL instance to a specified target version via API call.
|
1248
|
-
|
1249
|
-
Args:
|
1250
|
-
ref: str. Project or instance reference identifier to specify which PostgreSQL instance to upgrade.
|
1251
|
-
release_channel: str. Specifies the release channel (e.g., 'stable', 'beta') that determines the upgrade source.
|
1252
|
-
target_version: str. The desired target PostgreSQL version to upgrade to.
|
1253
|
-
|
1254
|
-
Returns:
|
1255
|
-
dict. The API response as a dictionary containing details about the upgrade initiation and status.
|
1256
|
-
|
1257
|
-
Raises:
|
1258
|
-
ValueError: If any of 'ref', 'release_channel', or 'target_version' is None.
|
1259
|
-
requests.HTTPError: If the underlying HTTP request to the upgrade API fails or returns an error response.
|
1260
|
-
|
1261
|
-
Tags:
|
1262
|
-
upgrade, postgres, api, management
|
1263
|
-
"""
|
1264
|
-
if ref is None:
|
1265
|
-
raise ValueError("Missing required parameter 'ref'")
|
1266
|
-
if release_channel is None:
|
1267
|
-
raise ValueError("Missing required parameter 'release_channel'")
|
1268
|
-
if target_version is None:
|
1269
|
-
raise ValueError("Missing required parameter 'target_version'")
|
1270
|
-
request_body = {
|
1271
|
-
"release_channel": release_channel,
|
1272
|
-
"target_version": target_version,
|
1273
|
-
}
|
1274
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
1275
|
-
url = f"{self.base_url}/v1/projects/{ref}/upgrade"
|
1276
|
-
query_params = {}
|
1277
|
-
response = self._post(url, data=request_body, params=query_params)
|
1278
|
-
response.raise_for_status()
|
1279
|
-
return response.json()
|
1280
|
-
|
1281
|
-
def v1_get_postgrest_upgrade_eligibility(self, ref) -> dict[str, Any]:
|
1282
|
-
"""
|
1283
|
-
Checks the eligibility of a PostgREST upgrade for a specified project reference.
|
1284
|
-
|
1285
|
-
Args:
|
1286
|
-
ref: str. The unique project reference identifier for which upgrade eligibility should be checked.
|
1287
|
-
|
1288
|
-
Returns:
|
1289
|
-
dict. A dictionary containing the eligibility status and related information for the PostgREST upgrade.
|
1290
|
-
|
1291
|
-
Raises:
|
1292
|
-
ValueError: Raised if the 'ref' parameter is None.
|
1293
|
-
HTTPError: Raised if the HTTP request to the eligibility endpoint fails.
|
1294
|
-
|
1295
|
-
Tags:
|
1296
|
-
check, upgrade, eligibility, management, api
|
1297
|
-
"""
|
1298
|
-
if ref is None:
|
1299
|
-
raise ValueError("Missing required parameter 'ref'")
|
1300
|
-
url = f"{self.base_url}/v1/projects/{ref}/upgrade/eligibility"
|
1301
|
-
query_params = {}
|
1302
|
-
response = self._get(url, params=query_params)
|
1303
|
-
response.raise_for_status()
|
1304
|
-
return response.json()
|
1305
|
-
|
1306
|
-
def v1_get_postgrest_upgrade_status(self, ref) -> dict[str, Any]:
|
1307
|
-
"""
|
1308
|
-
Retrieves the current upgrade status for a specified PostgREST project.
|
1309
|
-
|
1310
|
-
Args:
|
1311
|
-
ref: str. The unique reference ID of the project whose upgrade status is to be retrieved.
|
1312
|
-
|
1313
|
-
Returns:
|
1314
|
-
dict. A dictionary containing the upgrade status details for the specified project.
|
1315
|
-
|
1316
|
-
Raises:
|
1317
|
-
ValueError: If the 'ref' parameter is None.
|
1318
|
-
requests.HTTPError: If the HTTP request to the upgrade status endpoint fails.
|
1319
|
-
|
1320
|
-
Tags:
|
1321
|
-
get, status, postgrest, upgrade, management
|
1322
|
-
"""
|
1323
|
-
if ref is None:
|
1324
|
-
raise ValueError("Missing required parameter 'ref'")
|
1325
|
-
url = f"{self.base_url}/v1/projects/{ref}/upgrade/status"
|
1326
|
-
query_params = {}
|
1327
|
-
response = self._get(url, params=query_params)
|
1328
|
-
response.raise_for_status()
|
1329
|
-
return response.json()
|
1330
|
-
|
1331
|
-
def v1_get_readonly_mode_status(self, ref) -> dict[str, Any]:
|
1332
|
-
"""
|
1333
|
-
Retrieves the read-only mode status for a specified project reference.
|
1334
|
-
|
1335
|
-
Args:
|
1336
|
-
ref: The unique identifier (reference) of the project to query for read-only status.
|
1337
|
-
|
1338
|
-
Returns:
|
1339
|
-
A dictionary containing the read-only mode status of the specified project.
|
1340
|
-
|
1341
|
-
Raises:
|
1342
|
-
ValueError: If the required 'ref' parameter is None.
|
1343
|
-
requests.HTTPError: If the HTTP request to the server returns an unsuccessful status code.
|
1344
|
-
|
1345
|
-
Tags:
|
1346
|
-
get, status, readonly, management
|
1347
|
-
"""
|
1348
|
-
if ref is None:
|
1349
|
-
raise ValueError("Missing required parameter 'ref'")
|
1350
|
-
url = f"{self.base_url}/v1/projects/{ref}/readonly"
|
1351
|
-
query_params = {}
|
1352
|
-
response = self._get(url, params=query_params)
|
1353
|
-
response.raise_for_status()
|
1354
|
-
return response.json()
|
1355
|
-
|
1356
|
-
def v1_disable_readonly_mode_temporarily(self, ref) -> Any:
|
1357
|
-
"""
|
1358
|
-
Temporarily disables readonly mode for a specified project reference via a POST request.
|
1359
|
-
|
1360
|
-
Args:
|
1361
|
-
ref: The unique reference identifier for the project whose readonly mode should be temporarily disabled. Must not be None.
|
1362
|
-
|
1363
|
-
Returns:
|
1364
|
-
The JSON-decoded response from the API indicating the status of the readonly mode disable operation.
|
1365
|
-
|
1366
|
-
Raises:
|
1367
|
-
ValueError: If the provided 'ref' parameter is None.
|
1368
|
-
requests.HTTPError: If the HTTP request to the API fails (e.g., network error, non-2xx response).
|
1369
|
-
|
1370
|
-
Tags:
|
1371
|
-
disable, readonly-mode, project-management, api
|
1372
|
-
"""
|
1373
|
-
if ref is None:
|
1374
|
-
raise ValueError("Missing required parameter 'ref'")
|
1375
|
-
url = f"{self.base_url}/v1/projects/{ref}/readonly/temporary-disable"
|
1376
|
-
query_params = {}
|
1377
|
-
response = self._post(url, data={}, params=query_params)
|
1378
|
-
response.raise_for_status()
|
1379
|
-
return response.json()
|
1380
|
-
|
1381
|
-
def v1_setup_a_read_replica(self, ref, read_replica_region) -> Any:
|
1382
|
-
"""
|
1383
|
-
Initiates the setup of a read replica for a specified project in the given region.
|
1384
|
-
|
1385
|
-
Args:
|
1386
|
-
ref: The unique identifier or reference for the project for which the read replica is to be set up.
|
1387
|
-
read_replica_region: The region where the read replica should be created.
|
1388
|
-
|
1389
|
-
Returns:
|
1390
|
-
The server response as a parsed JSON object containing details of the read replica setup operation.
|
1391
|
-
|
1392
|
-
Raises:
|
1393
|
-
ValueError: Raised if either 'ref' or 'read_replica_region' is None, indicating a required parameter is missing.
|
1394
|
-
HTTPError: Raised if the server responds with an unsuccessful HTTP status code during the setup operation.
|
1395
|
-
|
1396
|
-
Tags:
|
1397
|
-
setup, read-replica, management
|
1398
|
-
"""
|
1399
|
-
if ref is None:
|
1400
|
-
raise ValueError("Missing required parameter 'ref'")
|
1401
|
-
if read_replica_region is None:
|
1402
|
-
raise ValueError("Missing required parameter 'read_replica_region'")
|
1403
|
-
request_body = {
|
1404
|
-
"read_replica_region": read_replica_region,
|
1405
|
-
}
|
1406
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
1407
|
-
url = f"{self.base_url}/v1/projects/{ref}/read-replicas/setup"
|
1408
|
-
query_params = {}
|
1409
|
-
response = self._post(url, data=request_body, params=query_params)
|
1410
|
-
response.raise_for_status()
|
1411
|
-
return response.json()
|
1412
|
-
|
1413
|
-
def v1_remove_a_read_replica(self, ref, database_identifier) -> Any:
|
1414
|
-
"""
|
1415
|
-
Removes a read replica from a specified database within a project.
|
1416
|
-
|
1417
|
-
Args:
|
1418
|
-
ref: str. Project identifier or reference for the operation.
|
1419
|
-
database_identifier: str. Identifier of the database from which the read replica should be removed.
|
1420
|
-
|
1421
|
-
Returns:
|
1422
|
-
dict. The server's JSON response after attempting to remove the read replica.
|
1423
|
-
|
1424
|
-
Raises:
|
1425
|
-
ValueError: Raised if 'ref' or 'database_identifier' is None.
|
1426
|
-
requests.HTTPError: Raised if the HTTP request to remove the read replica fails.
|
1427
|
-
|
1428
|
-
Tags:
|
1429
|
-
remove, read-replica, database-management, api-call
|
1430
|
-
"""
|
1431
|
-
if ref is None:
|
1432
|
-
raise ValueError("Missing required parameter 'ref'")
|
1433
|
-
if database_identifier is None:
|
1434
|
-
raise ValueError("Missing required parameter 'database_identifier'")
|
1435
|
-
request_body = {
|
1436
|
-
"database_identifier": database_identifier,
|
1437
|
-
}
|
1438
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
1439
|
-
url = f"{self.base_url}/v1/projects/{ref}/read-replicas/remove"
|
1440
|
-
query_params = {}
|
1441
|
-
response = self._post(url, data=request_body, params=query_params)
|
1442
|
-
response.raise_for_status()
|
1443
|
-
return response.json()
|
1444
|
-
|
1445
|
-
def v1_get_services_health(self, ref, services, timeout_ms=None) -> list[Any]:
|
1446
|
-
"""
|
1447
|
-
Checks the health status of specified services for a given project reference.
|
1448
|
-
|
1449
|
-
Args:
|
1450
|
-
ref: str. The reference identifier for the target project.
|
1451
|
-
services: list or str. The service or list of services to be checked.
|
1452
|
-
timeout_ms: Optional[int]. The timeout in milliseconds for the health checks. Defaults to None.
|
1453
|
-
|
1454
|
-
Returns:
|
1455
|
-
list. A list containing the health status information for the requested services.
|
1456
|
-
|
1457
|
-
Raises:
|
1458
|
-
ValueError: If 'ref' or 'services' is None.
|
1459
|
-
requests.HTTPError: If the health check HTTP request fails with a non-success response.
|
1460
|
-
|
1461
|
-
Tags:
|
1462
|
-
get, health, check, service, status
|
1463
|
-
"""
|
1464
|
-
if ref is None:
|
1465
|
-
raise ValueError("Missing required parameter 'ref'")
|
1466
|
-
if services is None:
|
1467
|
-
raise ValueError("Missing required parameter 'services'")
|
1468
|
-
url = f"{self.base_url}/v1/projects/{ref}/health"
|
1469
|
-
query_params = {
|
1470
|
-
k: v
|
1471
|
-
for k, v in [("timeout_ms", timeout_ms), ("services", services)]
|
1472
|
-
if v is not None
|
1473
|
-
}
|
1474
|
-
response = self._get(url, params=query_params)
|
1475
|
-
response.raise_for_status()
|
1476
|
-
return response.json()
|
1477
|
-
|
1478
|
-
def v1_get_postgres_config(self, ref) -> dict[str, Any]:
|
1479
|
-
"""
|
1480
|
-
Retrieves the PostgreSQL configuration for the specified project reference.
|
1481
|
-
|
1482
|
-
Args:
|
1483
|
-
ref: str. The unique reference identifier for the project whose PostgreSQL configuration is to be retrieved.
|
1484
|
-
|
1485
|
-
Returns:
|
1486
|
-
dict. The PostgreSQL configuration parameters for the specified project, as returned by the API.
|
1487
|
-
|
1488
|
-
Raises:
|
1489
|
-
ValueError: If 'ref' is None.
|
1490
|
-
requests.HTTPError: If the HTTP request to the API fails or returns an error status code.
|
1491
|
-
|
1492
|
-
Tags:
|
1493
|
-
get, config, postgres, ai
|
1494
|
-
"""
|
1495
|
-
if ref is None:
|
1496
|
-
raise ValueError("Missing required parameter 'ref'")
|
1497
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/database/postgres"
|
1498
|
-
query_params = {}
|
1499
|
-
response = self._get(url, params=query_params)
|
1500
|
-
response.raise_for_status()
|
1501
|
-
return response.json()
|
1502
|
-
|
1503
|
-
def v1_update_postgres_config(
|
1504
|
-
self,
|
1505
|
-
ref,
|
1506
|
-
statement_timeout=None,
|
1507
|
-
effective_cache_size=None,
|
1508
|
-
maintenance_work_mem=None,
|
1509
|
-
max_connections=None,
|
1510
|
-
max_locks_per_transaction=None,
|
1511
|
-
max_parallel_maintenance_workers=None,
|
1512
|
-
max_parallel_workers=None,
|
1513
|
-
max_parallel_workers_per_gather=None,
|
1514
|
-
max_slot_wal_keep_size=None,
|
1515
|
-
max_standby_archive_delay=None,
|
1516
|
-
max_standby_streaming_delay=None,
|
1517
|
-
max_wal_size=None,
|
1518
|
-
max_worker_processes=None,
|
1519
|
-
shared_buffers=None,
|
1520
|
-
wal_keep_size=None,
|
1521
|
-
work_mem=None,
|
1522
|
-
session_replication_role=None,
|
1523
|
-
) -> dict[str, Any]:
|
1524
|
-
"""
|
1525
|
-
Updates PostgreSQL configuration settings for a specified project via a REST API call.
|
1526
|
-
|
1527
|
-
Args:
|
1528
|
-
ref: str. The project reference identifier. Required.
|
1529
|
-
statement_timeout: Optional[int|str]. Sets the maximum allowed duration of any statement.
|
1530
|
-
effective_cache_size: Optional[int|str]. Estimates the effective size of the disk cache available to a single PostgreSQL process.
|
1531
|
-
maintenance_work_mem: Optional[int|str]. Sets the maximum memory to be used for maintenance operations.
|
1532
|
-
max_connections: Optional[int]. Sets the maximum number of concurrent connections.
|
1533
|
-
max_locks_per_transaction: Optional[int]. Sets the maximum number of locks per transaction.
|
1534
|
-
max_parallel_maintenance_workers: Optional[int]. Sets the maximum number of parallel workers for maintenance operations.
|
1535
|
-
max_parallel_workers: Optional[int]. Sets the maximum number of parallel workers for the entire instance.
|
1536
|
-
max_parallel_workers_per_gather: Optional[int]. Sets the maximum number of parallel workers that can be started by a single Gather node.
|
1537
|
-
max_slot_wal_keep_size: Optional[int|str]. Maximum size of WAL files kept for replication slots.
|
1538
|
-
max_standby_archive_delay: Optional[int|str]. Maximum delay a standby server can tolerate for applying WAL data from archive.
|
1539
|
-
max_standby_streaming_delay: Optional[int|str]. Maximum streaming replication delay on standby.
|
1540
|
-
max_wal_size: Optional[int|str]. Sets the maximum size to let the WAL grow between automatic WAL checkpoints.
|
1541
|
-
max_worker_processes: Optional[int]. Maximum number of background processes.
|
1542
|
-
shared_buffers: Optional[int|str]. Sets the amount of memory the database engine uses for shared memory buffers.
|
1543
|
-
wal_keep_size: Optional[int|str]. Sets the size of WAL files to keep for standby servers.
|
1544
|
-
work_mem: Optional[int|str]. Sets the amount of memory to be used by internal sort operations and hash tables before writing to temporary disk files.
|
1545
|
-
session_replication_role: Optional[str]. Sets the replication role for the session.
|
1546
|
-
|
1547
|
-
Returns:
|
1548
|
-
dict[str, Any]: The JSON response from the API after updating the configuration.
|
1549
|
-
|
1550
|
-
Raises:
|
1551
|
-
ValueError: If the 'ref' parameter is None.
|
1552
|
-
requests.HTTPError: If the HTTP request fails or the API responds with an error status code.
|
1553
|
-
|
1554
|
-
Tags:
|
1555
|
-
update, postgres-config, management, api, async-job
|
1556
|
-
"""
|
1557
|
-
if ref is None:
|
1558
|
-
raise ValueError("Missing required parameter 'ref'")
|
1559
|
-
request_body = {
|
1560
|
-
"statement_timeout": statement_timeout,
|
1561
|
-
"effective_cache_size": effective_cache_size,
|
1562
|
-
"maintenance_work_mem": maintenance_work_mem,
|
1563
|
-
"max_connections": max_connections,
|
1564
|
-
"max_locks_per_transaction": max_locks_per_transaction,
|
1565
|
-
"max_parallel_maintenance_workers": max_parallel_maintenance_workers,
|
1566
|
-
"max_parallel_workers": max_parallel_workers,
|
1567
|
-
"max_parallel_workers_per_gather": max_parallel_workers_per_gather,
|
1568
|
-
"max_slot_wal_keep_size": max_slot_wal_keep_size,
|
1569
|
-
"max_standby_archive_delay": max_standby_archive_delay,
|
1570
|
-
"max_standby_streaming_delay": max_standby_streaming_delay,
|
1571
|
-
"max_wal_size": max_wal_size,
|
1572
|
-
"max_worker_processes": max_worker_processes,
|
1573
|
-
"shared_buffers": shared_buffers,
|
1574
|
-
"wal_keep_size": wal_keep_size,
|
1575
|
-
"work_mem": work_mem,
|
1576
|
-
"session_replication_role": session_replication_role,
|
1577
|
-
}
|
1578
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
1579
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/database/postgres"
|
1580
|
-
query_params = {}
|
1581
|
-
response = self._put(url, data=request_body, params=query_params)
|
1582
|
-
response.raise_for_status()
|
1583
|
-
return response.json()
|
1584
|
-
|
1585
|
-
def v1_get_project_pgbouncer_config(self, ref) -> dict[str, Any]:
|
1586
|
-
"""
|
1587
|
-
Retrieves the PgBouncer configuration for a specific project by project reference.
|
1588
|
-
|
1589
|
-
Args:
|
1590
|
-
ref: The reference identifier of the project for which to fetch the PgBouncer configuration.
|
1591
|
-
|
1592
|
-
Returns:
|
1593
|
-
A dictionary containing the PgBouncer configuration for the specified project.
|
1594
|
-
|
1595
|
-
Raises:
|
1596
|
-
ValueError: Raised if the required parameter 'ref' is None.
|
1597
|
-
requests.HTTPError: Raised if the HTTP request for the configuration fails.
|
1598
|
-
|
1599
|
-
Tags:
|
1600
|
-
get, project, pgbouncer, config, management
|
1601
|
-
"""
|
1602
|
-
if ref is None:
|
1603
|
-
raise ValueError("Missing required parameter 'ref'")
|
1604
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/database/pgbouncer"
|
1605
|
-
query_params = {}
|
1606
|
-
response = self._get(url, params=query_params)
|
1607
|
-
response.raise_for_status()
|
1608
|
-
return response.json()
|
1609
|
-
|
1610
|
-
def v1_get_supavisor_config(self, ref) -> list[Any]:
|
1611
|
-
"""
|
1612
|
-
Retrieves the Supavisor configuration for a specified project reference from the configured API.
|
1613
|
-
|
1614
|
-
Args:
|
1615
|
-
ref: str. Unique project reference identifier used to construct the request URL. Must not be None.
|
1616
|
-
|
1617
|
-
Returns:
|
1618
|
-
list[Any]: The parsed JSON response from the API containing the Supavisor configuration details.
|
1619
|
-
|
1620
|
-
Raises:
|
1621
|
-
ValueError: If the required parameter 'ref' is None.
|
1622
|
-
requests.HTTPError: If the HTTP request returns an unsuccessful status code.
|
1623
|
-
|
1624
|
-
Tags:
|
1625
|
-
get, config, supavisor, api
|
1626
|
-
"""
|
1627
|
-
if ref is None:
|
1628
|
-
raise ValueError("Missing required parameter 'ref'")
|
1629
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/database/pooler"
|
1630
|
-
query_params = {}
|
1631
|
-
response = self._get(url, params=query_params)
|
1632
|
-
response.raise_for_status()
|
1633
|
-
return response.json()
|
1634
|
-
|
1635
|
-
def v1_update_supavisor_config(
|
1636
|
-
self, ref, default_pool_size=None, pool_mode=None
|
1637
|
-
) -> dict[str, Any]:
|
1638
|
-
"""
|
1639
|
-
Updates the Supavisor configuration for a specified project by modifying database pooler settings.
|
1640
|
-
|
1641
|
-
Args:
|
1642
|
-
ref: str. The unique reference identifier for the project whose Supavisor configuration is to be updated.
|
1643
|
-
default_pool_size: Optional[int]. The default size of the database connection pool. If None, this setting is not modified.
|
1644
|
-
pool_mode: Optional[str]. The mode of the connection pooler (e.g., 'transaction' or 'session'). If None, this setting is not modified.
|
1645
|
-
|
1646
|
-
Returns:
|
1647
|
-
dict[str, Any]: The JSON response containing the updated Supavisor configuration details from the API.
|
1648
|
-
|
1649
|
-
Raises:
|
1650
|
-
ValueError: If 'ref' is None.
|
1651
|
-
requests.HTTPError: If the HTTP request to the API fails or returns an unsuccessful status code.
|
1652
|
-
|
1653
|
-
Tags:
|
1654
|
-
update, supavisor, config, api, management
|
1655
|
-
"""
|
1656
|
-
if ref is None:
|
1657
|
-
raise ValueError("Missing required parameter 'ref'")
|
1658
|
-
request_body = {
|
1659
|
-
"default_pool_size": default_pool_size,
|
1660
|
-
"pool_mode": pool_mode,
|
1661
|
-
}
|
1662
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
1663
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/database/pooler"
|
1664
|
-
query_params = {}
|
1665
|
-
response = self._patch(url, data=request_body, params=query_params)
|
1666
|
-
response.raise_for_status()
|
1667
|
-
return response.json()
|
1668
|
-
|
1669
|
-
def v1_get_auth_service_config(self, ref) -> dict[str, Any]:
|
1670
|
-
"""
|
1671
|
-
Retrieves the authentication service configuration for the specified project reference from the API.
|
1672
|
-
|
1673
|
-
Args:
|
1674
|
-
ref: str. The unique identifier for the project whose authentication service configuration is to be retrieved.
|
1675
|
-
|
1676
|
-
Returns:
|
1677
|
-
dict. A dictionary containing the authentication service configuration details for the specified project.
|
1678
|
-
|
1679
|
-
Raises:
|
1680
|
-
ValueError: Raised if 'ref' is None.
|
1681
|
-
requests.HTTPError: Raised if the HTTP request to the API fails or returns a non-success status code.
|
1682
|
-
|
1683
|
-
Tags:
|
1684
|
-
get, auth-service, config, api
|
1685
|
-
"""
|
1686
|
-
if ref is None:
|
1687
|
-
raise ValueError("Missing required parameter 'ref'")
|
1688
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/auth"
|
1689
|
-
query_params = {}
|
1690
|
-
response = self._get(url, params=query_params)
|
1691
|
-
response.raise_for_status()
|
1692
|
-
return response.json()
|
1693
|
-
|
1694
|
-
def v1_update_auth_service_config(
|
1695
|
-
self,
|
1696
|
-
ref,
|
1697
|
-
site_url=None,
|
1698
|
-
disable_signup=None,
|
1699
|
-
jwt_exp=None,
|
1700
|
-
smtp_admin_email=None,
|
1701
|
-
smtp_host=None,
|
1702
|
-
smtp_port=None,
|
1703
|
-
smtp_user=None,
|
1704
|
-
smtp_pass=None,
|
1705
|
-
smtp_max_frequency=None,
|
1706
|
-
smtp_sender_name=None,
|
1707
|
-
mailer_allow_unverified_email_sign_ins=None,
|
1708
|
-
mailer_autoconfirm=None,
|
1709
|
-
mailer_subjects_invite=None,
|
1710
|
-
mailer_subjects_confirmation=None,
|
1711
|
-
mailer_subjects_recovery=None,
|
1712
|
-
mailer_subjects_email_change=None,
|
1713
|
-
mailer_subjects_magic_link=None,
|
1714
|
-
mailer_subjects_reauthentication=None,
|
1715
|
-
mailer_templates_invite_content=None,
|
1716
|
-
mailer_templates_confirmation_content=None,
|
1717
|
-
mailer_templates_recovery_content=None,
|
1718
|
-
mailer_templates_email_change_content=None,
|
1719
|
-
mailer_templates_magic_link_content=None,
|
1720
|
-
mailer_templates_reauthentication_content=None,
|
1721
|
-
mfa_max_enrolled_factors=None,
|
1722
|
-
uri_allow_list=None,
|
1723
|
-
external_anonymous_users_enabled=None,
|
1724
|
-
external_email_enabled=None,
|
1725
|
-
external_phone_enabled=None,
|
1726
|
-
saml_enabled=None,
|
1727
|
-
saml_external_url=None,
|
1728
|
-
security_captcha_enabled=None,
|
1729
|
-
security_captcha_provider=None,
|
1730
|
-
security_captcha_secret=None,
|
1731
|
-
sessions_timebox=None,
|
1732
|
-
sessions_inactivity_timeout=None,
|
1733
|
-
sessions_single_per_user=None,
|
1734
|
-
sessions_tags=None,
|
1735
|
-
rate_limit_anonymous_users=None,
|
1736
|
-
rate_limit_email_sent=None,
|
1737
|
-
rate_limit_sms_sent=None,
|
1738
|
-
rate_limit_verify=None,
|
1739
|
-
rate_limit_token_refresh=None,
|
1740
|
-
rate_limit_otp=None,
|
1741
|
-
mailer_secure_email_change_enabled=None,
|
1742
|
-
refresh_token_rotation_enabled=None,
|
1743
|
-
password_hibp_enabled=None,
|
1744
|
-
password_min_length=None,
|
1745
|
-
password_required_characters=None,
|
1746
|
-
security_manual_linking_enabled=None,
|
1747
|
-
security_update_password_require_reauthentication=None,
|
1748
|
-
security_refresh_token_reuse_interval=None,
|
1749
|
-
mailer_otp_exp=None,
|
1750
|
-
mailer_otp_length=None,
|
1751
|
-
sms_autoconfirm=None,
|
1752
|
-
sms_max_frequency=None,
|
1753
|
-
sms_otp_exp=None,
|
1754
|
-
sms_otp_length=None,
|
1755
|
-
sms_provider=None,
|
1756
|
-
sms_messagebird_access_key=None,
|
1757
|
-
sms_messagebird_originator=None,
|
1758
|
-
sms_test_otp=None,
|
1759
|
-
sms_test_otp_valid_until=None,
|
1760
|
-
sms_textlocal_api_key=None,
|
1761
|
-
sms_textlocal_sender=None,
|
1762
|
-
sms_twilio_account_sid=None,
|
1763
|
-
sms_twilio_auth_token=None,
|
1764
|
-
sms_twilio_content_sid=None,
|
1765
|
-
sms_twilio_message_service_sid=None,
|
1766
|
-
sms_twilio_verify_account_sid=None,
|
1767
|
-
sms_twilio_verify_auth_token=None,
|
1768
|
-
sms_twilio_verify_message_service_sid=None,
|
1769
|
-
sms_vonage_api_key=None,
|
1770
|
-
sms_vonage_api_secret=None,
|
1771
|
-
sms_vonage_from=None,
|
1772
|
-
sms_template=None,
|
1773
|
-
hook_mfa_verification_attempt_enabled=None,
|
1774
|
-
hook_mfa_verification_attempt_uri=None,
|
1775
|
-
hook_mfa_verification_attempt_secrets=None,
|
1776
|
-
hook_password_verification_attempt_enabled=None,
|
1777
|
-
hook_password_verification_attempt_uri=None,
|
1778
|
-
hook_password_verification_attempt_secrets=None,
|
1779
|
-
hook_custom_access_token_enabled=None,
|
1780
|
-
hook_custom_access_token_uri=None,
|
1781
|
-
hook_custom_access_token_secrets=None,
|
1782
|
-
hook_send_sms_enabled=None,
|
1783
|
-
hook_send_sms_uri=None,
|
1784
|
-
hook_send_sms_secrets=None,
|
1785
|
-
hook_send_email_enabled=None,
|
1786
|
-
hook_send_email_uri=None,
|
1787
|
-
hook_send_email_secrets=None,
|
1788
|
-
external_apple_enabled=None,
|
1789
|
-
external_apple_client_id=None,
|
1790
|
-
external_apple_secret=None,
|
1791
|
-
external_apple_additional_client_ids=None,
|
1792
|
-
external_azure_enabled=None,
|
1793
|
-
external_azure_client_id=None,
|
1794
|
-
external_azure_secret=None,
|
1795
|
-
external_azure_url=None,
|
1796
|
-
external_bitbucket_enabled=None,
|
1797
|
-
external_bitbucket_client_id=None,
|
1798
|
-
external_bitbucket_secret=None,
|
1799
|
-
external_discord_enabled=None,
|
1800
|
-
external_discord_client_id=None,
|
1801
|
-
external_discord_secret=None,
|
1802
|
-
external_facebook_enabled=None,
|
1803
|
-
external_facebook_client_id=None,
|
1804
|
-
external_facebook_secret=None,
|
1805
|
-
external_figma_enabled=None,
|
1806
|
-
external_figma_client_id=None,
|
1807
|
-
external_figma_secret=None,
|
1808
|
-
external_github_enabled=None,
|
1809
|
-
external_github_client_id=None,
|
1810
|
-
external_github_secret=None,
|
1811
|
-
external_gitlab_enabled=None,
|
1812
|
-
external_gitlab_client_id=None,
|
1813
|
-
external_gitlab_secret=None,
|
1814
|
-
external_gitlab_url=None,
|
1815
|
-
external_google_enabled=None,
|
1816
|
-
external_google_client_id=None,
|
1817
|
-
external_google_secret=None,
|
1818
|
-
external_google_additional_client_ids=None,
|
1819
|
-
external_google_skip_nonce_check=None,
|
1820
|
-
external_kakao_enabled=None,
|
1821
|
-
external_kakao_client_id=None,
|
1822
|
-
external_kakao_secret=None,
|
1823
|
-
external_keycloak_enabled=None,
|
1824
|
-
external_keycloak_client_id=None,
|
1825
|
-
external_keycloak_secret=None,
|
1826
|
-
external_keycloak_url=None,
|
1827
|
-
external_linkedin_oidc_enabled=None,
|
1828
|
-
external_linkedin_oidc_client_id=None,
|
1829
|
-
external_linkedin_oidc_secret=None,
|
1830
|
-
external_slack_oidc_enabled=None,
|
1831
|
-
external_slack_oidc_client_id=None,
|
1832
|
-
external_slack_oidc_secret=None,
|
1833
|
-
external_notion_enabled=None,
|
1834
|
-
external_notion_client_id=None,
|
1835
|
-
external_notion_secret=None,
|
1836
|
-
external_slack_enabled=None,
|
1837
|
-
external_slack_client_id=None,
|
1838
|
-
external_slack_secret=None,
|
1839
|
-
external_spotify_enabled=None,
|
1840
|
-
external_spotify_client_id=None,
|
1841
|
-
external_spotify_secret=None,
|
1842
|
-
external_twitch_enabled=None,
|
1843
|
-
external_twitch_client_id=None,
|
1844
|
-
external_twitch_secret=None,
|
1845
|
-
external_twitter_enabled=None,
|
1846
|
-
external_twitter_client_id=None,
|
1847
|
-
external_twitter_secret=None,
|
1848
|
-
external_workos_enabled=None,
|
1849
|
-
external_workos_client_id=None,
|
1850
|
-
external_workos_secret=None,
|
1851
|
-
external_workos_url=None,
|
1852
|
-
external_zoom_enabled=None,
|
1853
|
-
external_zoom_client_id=None,
|
1854
|
-
external_zoom_secret=None,
|
1855
|
-
db_max_pool_size=None,
|
1856
|
-
api_max_request_duration=None,
|
1857
|
-
mfa_totp_enroll_enabled=None,
|
1858
|
-
mfa_totp_verify_enabled=None,
|
1859
|
-
mfa_web_authn_enroll_enabled=None,
|
1860
|
-
mfa_web_authn_verify_enabled=None,
|
1861
|
-
mfa_phone_enroll_enabled=None,
|
1862
|
-
mfa_phone_verify_enabled=None,
|
1863
|
-
mfa_phone_max_frequency=None,
|
1864
|
-
mfa_phone_otp_length=None,
|
1865
|
-
mfa_phone_template=None,
|
1866
|
-
) -> dict[str, Any]:
|
1867
|
-
"""
|
1868
|
-
Updates the authentication service configuration for a specified project with the provided settings.
|
1869
|
-
|
1870
|
-
Args:
|
1871
|
-
ref: str. The unique reference identifier for the target project. Required.
|
1872
|
-
site_url: Optional[str]. The base URL of the site associated with the authentication service.
|
1873
|
-
disable_signup: Optional[bool]. If True, disables user sign-ups for the project.
|
1874
|
-
jwt_exp: Optional[int]. Duration in seconds before issued JWTs expire.
|
1875
|
-
smtp_admin_email: Optional[str]. Email address used as SMTP admin.
|
1876
|
-
smtp_host: Optional[str]. Hostname for the SMTP server.
|
1877
|
-
smtp_port: Optional[int]. Port number for the SMTP server.
|
1878
|
-
smtp_user: Optional[str]. Username for SMTP authentication.
|
1879
|
-
smtp_pass: Optional[str]. Password for SMTP authentication.
|
1880
|
-
smtp_max_frequency: Optional[int]. Maximum frequency at which SMTP emails can be sent.
|
1881
|
-
smtp_sender_name: Optional[str]. Display name of the SMTP sender.
|
1882
|
-
mailer_allow_unverified_email_sign_ins: Optional[bool]. Whether to allow sign-ins with unverified email addresses.
|
1883
|
-
mailer_autoconfirm: Optional[bool]. If True, automatically confirms email sign-ups.
|
1884
|
-
mailer_subjects_invite: Optional[str]. Subject line for invitation emails.
|
1885
|
-
mailer_subjects_confirmation: Optional[str]. Subject line for email confirmation.
|
1886
|
-
mailer_subjects_recovery: Optional[str]. Subject line for account recovery emails.
|
1887
|
-
mailer_subjects_email_change: Optional[str]. Subject line for email change requests.
|
1888
|
-
mailer_subjects_magic_link: Optional[str]. Subject line for magic link emails.
|
1889
|
-
mailer_subjects_reauthentication: Optional[str]. Subject line for reauthentication emails.
|
1890
|
-
mailer_templates_invite_content: Optional[str]. Email template content for invites.
|
1891
|
-
mailer_templates_confirmation_content: Optional[str]. Email template content for confirmations.
|
1892
|
-
mailer_templates_recovery_content: Optional[str]. Email template content for recovery.
|
1893
|
-
mailer_templates_email_change_content: Optional[str]. Email template content for email changes.
|
1894
|
-
mailer_templates_magic_link_content: Optional[str]. Email template content for magic links.
|
1895
|
-
mailer_templates_reauthentication_content: Optional[str]. Email template content for reauthentication.
|
1896
|
-
mfa_max_enrolled_factors: Optional[int]. Maximum number of multi-factor authentication factors per user.
|
1897
|
-
uri_allow_list: Optional[list[str]]. List of allowed redirect URIs.
|
1898
|
-
external_anonymous_users_enabled: Optional[bool]. Enables support for anonymous users.
|
1899
|
-
external_email_enabled: Optional[bool]. Enables email-based external login.
|
1900
|
-
external_phone_enabled: Optional[bool]. Enables phone-based external login.
|
1901
|
-
saml_enabled: Optional[bool]. Enables SAML authentication.
|
1902
|
-
saml_external_url: Optional[str]. External URL for SAML provider.
|
1903
|
-
security_captcha_enabled: Optional[bool]. Enables CAPTCHA for added security.
|
1904
|
-
security_captcha_provider: Optional[str]. Which CAPTCHA provider to use.
|
1905
|
-
security_captcha_secret: Optional[str]. Secret key for the CAPTCHA provider.
|
1906
|
-
sessions_timebox: Optional[int]. Maximum session duration in seconds.
|
1907
|
-
sessions_inactivity_timeout: Optional[int]. Timeout before an inactive session is ended.
|
1908
|
-
sessions_single_per_user: Optional[bool]. Restricts users to a single active session.
|
1909
|
-
sessions_tags: Optional[list[str]]. Tags used for session management.
|
1910
|
-
rate_limit_anonymous_users: Optional[int]. Rate limit for anonymous user operations.
|
1911
|
-
rate_limit_email_sent: Optional[int]. Rate limit for sending emails.
|
1912
|
-
rate_limit_sms_sent: Optional[int]. Rate limit for sending SMS messages.
|
1913
|
-
rate_limit_verify: Optional[int]. Rate limit for verification attempts.
|
1914
|
-
rate_limit_token_refresh: Optional[int]. Rate limit for token refresh operations.
|
1915
|
-
rate_limit_otp: Optional[int]. Rate limit for OTP requests.
|
1916
|
-
mailer_secure_email_change_enabled: Optional[bool]. Enables secure workflow for email change requests.
|
1917
|
-
refresh_token_rotation_enabled: Optional[bool]. Enables JWT refresh token rotation.
|
1918
|
-
password_hibp_enabled: Optional[bool]. Enable password checks against Have I Been Pwned (HIBP) database.
|
1919
|
-
password_min_length: Optional[int]. Minimum password length required.
|
1920
|
-
password_required_characters: Optional[list[str]]. List of required character types (e.g. uppercase, number).
|
1921
|
-
security_manual_linking_enabled: Optional[bool]. Enables manual linking of authentication providers.
|
1922
|
-
security_update_password_require_reauthentication: Optional[bool]. Requires re-authentication to update password.
|
1923
|
-
security_refresh_token_reuse_interval: Optional[int]. Time interval for refresh token re-use.
|
1924
|
-
mailer_otp_exp: Optional[int]. Expiry time in seconds for email OTP codes.
|
1925
|
-
mailer_otp_length: Optional[int]. Length of OTP codes sent via email.
|
1926
|
-
sms_autoconfirm: Optional[bool]. If True, automatically confirms phone sign-ups.
|
1927
|
-
sms_max_frequency: Optional[int]. Maximum frequency of SMS sends.
|
1928
|
-
sms_otp_exp: Optional[int]. Expiry time in seconds for SMS OTP codes.
|
1929
|
-
sms_otp_length: Optional[int]. Length of OTP codes sent via SMS.
|
1930
|
-
sms_provider: Optional[str]. Provider used for sending SMS.
|
1931
|
-
sms_messagebird_access_key: Optional[str]. Access key for MessageBird SMS provider.
|
1932
|
-
sms_messagebird_originator: Optional[str]. SMS originator for MessageBird.
|
1933
|
-
sms_test_otp: Optional[str]. Test OTP value for development/testing.
|
1934
|
-
sms_test_otp_valid_until: Optional[str]. Expiry time for test OTP.
|
1935
|
-
sms_textlocal_api_key: Optional[str]. API key for TextLocal SMS provider.
|
1936
|
-
sms_textlocal_sender: Optional[str]. Sender identifier for TextLocal SMS.
|
1937
|
-
sms_twilio_account_sid: Optional[str]. Twilio Account SID for SMS.
|
1938
|
-
sms_twilio_auth_token: Optional[str]. Twilio authentication token.
|
1939
|
-
sms_twilio_content_sid: Optional[str]. Twilio content service identifier.
|
1940
|
-
sms_twilio_message_service_sid: Optional[str]. Twilio message service SID.
|
1941
|
-
sms_twilio_verify_account_sid: Optional[str]. Twilio Verify Account SID.
|
1942
|
-
sms_twilio_verify_auth_token: Optional[str]. Twilio Verify authentication token.
|
1943
|
-
sms_twilio_verify_message_service_sid: Optional[str]. Twilio Verify message service SID.
|
1944
|
-
sms_vonage_api_key: Optional[str]. Vonage API key for SMS.
|
1945
|
-
sms_vonage_api_secret: Optional[str]. Vonage API secret for SMS.
|
1946
|
-
sms_vonage_from: Optional[str]. Sender identifier for Vonage SMS.
|
1947
|
-
sms_template: Optional[str]. Template for SMS content.
|
1948
|
-
hook_mfa_verification_attempt_enabled: Optional[bool]. Enables custom hook on MFA attempt.
|
1949
|
-
hook_mfa_verification_attempt_uri: Optional[str]. URI for custom MFA verification hook.
|
1950
|
-
hook_mfa_verification_attempt_secrets: Optional[list[str]]. Secrets for custom MFA verification hook.
|
1951
|
-
hook_password_verification_attempt_enabled: Optional[bool]. Enables custom hook on password verification attempt.
|
1952
|
-
hook_password_verification_attempt_uri: Optional[str]. URI for custom password verification hook.
|
1953
|
-
hook_password_verification_attempt_secrets: Optional[list[str]]. Secrets for custom password verification hook.
|
1954
|
-
hook_custom_access_token_enabled: Optional[bool]. Enables custom hook for access tokens.
|
1955
|
-
hook_custom_access_token_uri: Optional[str]. URI for custom access token hook.
|
1956
|
-
hook_custom_access_token_secrets: Optional[list[str]]. Secrets for custom access token hook.
|
1957
|
-
hook_send_sms_enabled: Optional[bool]. Enables custom hook for sending SMS.
|
1958
|
-
hook_send_sms_uri: Optional[str]. URI for custom SMS hook.
|
1959
|
-
hook_send_sms_secrets: Optional[list[str]]. Secrets for custom SMS hook.
|
1960
|
-
hook_send_email_enabled: Optional[bool]. Enables custom hook for sending emails.
|
1961
|
-
hook_send_email_uri: Optional[str]. URI for custom email hook.
|
1962
|
-
hook_send_email_secrets: Optional[list[str]]. Secrets for custom email hook.
|
1963
|
-
external_apple_enabled: Optional[bool]. Enables Apple as external authentication provider.
|
1964
|
-
external_apple_client_id: Optional[str]. Client ID for Apple authentication.
|
1965
|
-
external_apple_secret: Optional[str]. Secret for Apple authentication.
|
1966
|
-
external_apple_additional_client_ids: Optional[list[str]]. Additional Apple client IDs.
|
1967
|
-
external_azure_enabled: Optional[bool]. Enables Azure as external authentication provider.
|
1968
|
-
external_azure_client_id: Optional[str]. Client ID for Azure authentication.
|
1969
|
-
external_azure_secret: Optional[str]. Secret for Azure authentication.
|
1970
|
-
external_azure_url: Optional[str]. Azure authentication URL.
|
1971
|
-
external_bitbucket_enabled: Optional[bool]. Enables Bitbucket as external authentication provider.
|
1972
|
-
external_bitbucket_client_id: Optional[str]. Client ID for Bitbucket authentication.
|
1973
|
-
external_bitbucket_secret: Optional[str]. Secret for Bitbucket authentication.
|
1974
|
-
external_discord_enabled: Optional[bool]. Enables Discord as external authentication provider.
|
1975
|
-
external_discord_client_id: Optional[str]. Client ID for Discord authentication.
|
1976
|
-
external_discord_secret: Optional[str]. Secret for Discord authentication.
|
1977
|
-
external_facebook_enabled: Optional[bool]. Enables Facebook as external authentication provider.
|
1978
|
-
external_facebook_client_id: Optional[str]. Client ID for Facebook authentication.
|
1979
|
-
external_facebook_secret: Optional[str]. Secret for Facebook authentication.
|
1980
|
-
external_figma_enabled: Optional[bool]. Enables Figma as external authentication provider.
|
1981
|
-
external_figma_client_id: Optional[str]. Client ID for Figma authentication.
|
1982
|
-
external_figma_secret: Optional[str]. Secret for Figma authentication.
|
1983
|
-
external_github_enabled: Optional[bool]. Enables GitHub as external authentication provider.
|
1984
|
-
external_github_client_id: Optional[str]. Client ID for GitHub authentication.
|
1985
|
-
external_github_secret: Optional[str]. Secret for GitHub authentication.
|
1986
|
-
external_gitlab_enabled: Optional[bool]. Enables GitLab as external authentication provider.
|
1987
|
-
external_gitlab_client_id: Optional[str]. Client ID for GitLab authentication.
|
1988
|
-
external_gitlab_secret: Optional[str]. Secret for GitLab authentication.
|
1989
|
-
external_gitlab_url: Optional[str]. GitLab authentication URL.
|
1990
|
-
external_google_enabled: Optional[bool]. Enables Google as external authentication provider.
|
1991
|
-
external_google_client_id: Optional[str]. Client ID for Google authentication.
|
1992
|
-
external_google_secret: Optional[str]. Secret for Google authentication.
|
1993
|
-
external_google_additional_client_ids: Optional[list[str]]. Additional Google client IDs.
|
1994
|
-
external_google_skip_nonce_check: Optional[bool]. Skips nonce check for Google authentication.
|
1995
|
-
external_kakao_enabled: Optional[bool]. Enables Kakao as external authentication provider.
|
1996
|
-
external_kakao_client_id: Optional[str]. Client ID for Kakao authentication.
|
1997
|
-
external_kakao_secret: Optional[str]. Secret for Kakao authentication.
|
1998
|
-
external_keycloak_enabled: Optional[bool]. Enables Keycloak as external authentication provider.
|
1999
|
-
external_keycloak_client_id: Optional[str]. Client ID for Keycloak authentication.
|
2000
|
-
external_keycloak_secret: Optional[str]. Secret for Keycloak authentication.
|
2001
|
-
external_keycloak_url: Optional[str]. Keycloak authentication URL.
|
2002
|
-
external_linkedin_oidc_enabled: Optional[bool]. Enables LinkedIn OIDC as external authentication provider.
|
2003
|
-
external_linkedin_oidc_client_id: Optional[str]. Client ID for LinkedIn OIDC.
|
2004
|
-
external_linkedin_oidc_secret: Optional[str]. Secret for LinkedIn OIDC.
|
2005
|
-
external_slack_oidc_enabled: Optional[bool]. Enables Slack OIDC as external authentication provider.
|
2006
|
-
external_slack_oidc_client_id: Optional[str]. Client ID for Slack OIDC.
|
2007
|
-
external_slack_oidc_secret: Optional[str]. Secret for Slack OIDC.
|
2008
|
-
external_notion_enabled: Optional[bool]. Enables Notion as external authentication provider.
|
2009
|
-
external_notion_client_id: Optional[str]. Client ID for Notion authentication.
|
2010
|
-
external_notion_secret: Optional[str]. Secret for Notion authentication.
|
2011
|
-
external_slack_enabled: Optional[bool]. Enables Slack as external authentication provider.
|
2012
|
-
external_slack_client_id: Optional[str]. Client ID for Slack authentication.
|
2013
|
-
external_slack_secret: Optional[str]. Secret for Slack authentication.
|
2014
|
-
external_spotify_enabled: Optional[bool]. Enables Spotify as external authentication provider.
|
2015
|
-
external_spotify_client_id: Optional[str]. Client ID for Spotify authentication.
|
2016
|
-
external_spotify_secret: Optional[str]. Secret for Spotify authentication.
|
2017
|
-
external_twitch_enabled: Optional[bool]. Enables Twitch as external authentication provider.
|
2018
|
-
external_twitch_client_id: Optional[str]. Client ID for Twitch authentication.
|
2019
|
-
external_twitch_secret: Optional[str]. Secret for Twitch authentication.
|
2020
|
-
external_twitter_enabled: Optional[bool]. Enables Twitter as external authentication provider.
|
2021
|
-
external_twitter_client_id: Optional[str]. Client ID for Twitter authentication.
|
2022
|
-
external_twitter_secret: Optional[str]. Secret for Twitter authentication.
|
2023
|
-
external_workos_enabled: Optional[bool]. Enables WorkOS as external authentication provider.
|
2024
|
-
external_workos_client_id: Optional[str]. Client ID for WorkOS authentication.
|
2025
|
-
external_workos_secret: Optional[str]. Secret for WorkOS authentication.
|
2026
|
-
external_workos_url: Optional[str]. WorkOS authentication URL.
|
2027
|
-
external_zoom_enabled: Optional[bool]. Enables Zoom as external authentication provider.
|
2028
|
-
external_zoom_client_id: Optional[str]. Client ID for Zoom authentication.
|
2029
|
-
external_zoom_secret: Optional[str]. Secret for Zoom authentication.
|
2030
|
-
db_max_pool_size: Optional[int]. Maximum database connection pool size.
|
2031
|
-
api_max_request_duration: Optional[int]. Maximum duration (in seconds) for API requests.
|
2032
|
-
mfa_totp_enroll_enabled: Optional[bool]. Enables TOTP enrollment for MFA.
|
2033
|
-
mfa_totp_verify_enabled: Optional[bool]. Enables TOTP verification for MFA.
|
2034
|
-
mfa_web_authn_enroll_enabled: Optional[bool]. Enables WebAuthn enrollment for MFA.
|
2035
|
-
mfa_web_authn_verify_enabled: Optional[bool]. Enables WebAuthn verification for MFA.
|
2036
|
-
mfa_phone_enroll_enabled: Optional[bool]. Enables phone enrollment for MFA.
|
2037
|
-
mfa_phone_verify_enabled: Optional[bool]. Enables phone verification for MFA.
|
2038
|
-
mfa_phone_max_frequency: Optional[int]. Maximum frequency of MFA phone attempts.
|
2039
|
-
mfa_phone_otp_length: Optional[int]. Length of MFA phone OTP.
|
2040
|
-
mfa_phone_template: Optional[str]. MFA phone OTP template.
|
2041
|
-
|
2042
|
-
Returns:
|
2043
|
-
dict[str, Any]: The updated authentication service configuration as returned by the server.
|
2044
|
-
|
2045
|
-
Raises:
|
2046
|
-
ValueError: If the required 'ref' parameter is not provided.
|
2047
|
-
requests.HTTPError: If the HTTP request to update config fails (e.g., network error or non-2xx response).
|
2048
|
-
|
2049
|
-
Tags:
|
2050
|
-
update, auth-config, management, http, patch
|
2051
|
-
"""
|
2052
|
-
if ref is None:
|
2053
|
-
raise ValueError("Missing required parameter 'ref'")
|
2054
|
-
request_body = {
|
2055
|
-
"site_url": site_url,
|
2056
|
-
"disable_signup": disable_signup,
|
2057
|
-
"jwt_exp": jwt_exp,
|
2058
|
-
"smtp_admin_email": smtp_admin_email,
|
2059
|
-
"smtp_host": smtp_host,
|
2060
|
-
"smtp_port": smtp_port,
|
2061
|
-
"smtp_user": smtp_user,
|
2062
|
-
"smtp_pass": smtp_pass,
|
2063
|
-
"smtp_max_frequency": smtp_max_frequency,
|
2064
|
-
"smtp_sender_name": smtp_sender_name,
|
2065
|
-
"mailer_allow_unverified_email_sign_ins": mailer_allow_unverified_email_sign_ins,
|
2066
|
-
"mailer_autoconfirm": mailer_autoconfirm,
|
2067
|
-
"mailer_subjects_invite": mailer_subjects_invite,
|
2068
|
-
"mailer_subjects_confirmation": mailer_subjects_confirmation,
|
2069
|
-
"mailer_subjects_recovery": mailer_subjects_recovery,
|
2070
|
-
"mailer_subjects_email_change": mailer_subjects_email_change,
|
2071
|
-
"mailer_subjects_magic_link": mailer_subjects_magic_link,
|
2072
|
-
"mailer_subjects_reauthentication": mailer_subjects_reauthentication,
|
2073
|
-
"mailer_templates_invite_content": mailer_templates_invite_content,
|
2074
|
-
"mailer_templates_confirmation_content": mailer_templates_confirmation_content,
|
2075
|
-
"mailer_templates_recovery_content": mailer_templates_recovery_content,
|
2076
|
-
"mailer_templates_email_change_content": mailer_templates_email_change_content,
|
2077
|
-
"mailer_templates_magic_link_content": mailer_templates_magic_link_content,
|
2078
|
-
"mailer_templates_reauthentication_content": mailer_templates_reauthentication_content,
|
2079
|
-
"mfa_max_enrolled_factors": mfa_max_enrolled_factors,
|
2080
|
-
"uri_allow_list": uri_allow_list,
|
2081
|
-
"external_anonymous_users_enabled": external_anonymous_users_enabled,
|
2082
|
-
"external_email_enabled": external_email_enabled,
|
2083
|
-
"external_phone_enabled": external_phone_enabled,
|
2084
|
-
"saml_enabled": saml_enabled,
|
2085
|
-
"saml_external_url": saml_external_url,
|
2086
|
-
"security_captcha_enabled": security_captcha_enabled,
|
2087
|
-
"security_captcha_provider": security_captcha_provider,
|
2088
|
-
"security_captcha_secret": security_captcha_secret,
|
2089
|
-
"sessions_timebox": sessions_timebox,
|
2090
|
-
"sessions_inactivity_timeout": sessions_inactivity_timeout,
|
2091
|
-
"sessions_single_per_user": sessions_single_per_user,
|
2092
|
-
"sessions_tags": sessions_tags,
|
2093
|
-
"rate_limit_anonymous_users": rate_limit_anonymous_users,
|
2094
|
-
"rate_limit_email_sent": rate_limit_email_sent,
|
2095
|
-
"rate_limit_sms_sent": rate_limit_sms_sent,
|
2096
|
-
"rate_limit_verify": rate_limit_verify,
|
2097
|
-
"rate_limit_token_refresh": rate_limit_token_refresh,
|
2098
|
-
"rate_limit_otp": rate_limit_otp,
|
2099
|
-
"mailer_secure_email_change_enabled": mailer_secure_email_change_enabled,
|
2100
|
-
"refresh_token_rotation_enabled": refresh_token_rotation_enabled,
|
2101
|
-
"password_hibp_enabled": password_hibp_enabled,
|
2102
|
-
"password_min_length": password_min_length,
|
2103
|
-
"password_required_characters": password_required_characters,
|
2104
|
-
"security_manual_linking_enabled": security_manual_linking_enabled,
|
2105
|
-
"security_update_password_require_reauthentication": security_update_password_require_reauthentication,
|
2106
|
-
"security_refresh_token_reuse_interval": security_refresh_token_reuse_interval,
|
2107
|
-
"mailer_otp_exp": mailer_otp_exp,
|
2108
|
-
"mailer_otp_length": mailer_otp_length,
|
2109
|
-
"sms_autoconfirm": sms_autoconfirm,
|
2110
|
-
"sms_max_frequency": sms_max_frequency,
|
2111
|
-
"sms_otp_exp": sms_otp_exp,
|
2112
|
-
"sms_otp_length": sms_otp_length,
|
2113
|
-
"sms_provider": sms_provider,
|
2114
|
-
"sms_messagebird_access_key": sms_messagebird_access_key,
|
2115
|
-
"sms_messagebird_originator": sms_messagebird_originator,
|
2116
|
-
"sms_test_otp": sms_test_otp,
|
2117
|
-
"sms_test_otp_valid_until": sms_test_otp_valid_until,
|
2118
|
-
"sms_textlocal_api_key": sms_textlocal_api_key,
|
2119
|
-
"sms_textlocal_sender": sms_textlocal_sender,
|
2120
|
-
"sms_twilio_account_sid": sms_twilio_account_sid,
|
2121
|
-
"sms_twilio_auth_token": sms_twilio_auth_token,
|
2122
|
-
"sms_twilio_content_sid": sms_twilio_content_sid,
|
2123
|
-
"sms_twilio_message_service_sid": sms_twilio_message_service_sid,
|
2124
|
-
"sms_twilio_verify_account_sid": sms_twilio_verify_account_sid,
|
2125
|
-
"sms_twilio_verify_auth_token": sms_twilio_verify_auth_token,
|
2126
|
-
"sms_twilio_verify_message_service_sid": sms_twilio_verify_message_service_sid,
|
2127
|
-
"sms_vonage_api_key": sms_vonage_api_key,
|
2128
|
-
"sms_vonage_api_secret": sms_vonage_api_secret,
|
2129
|
-
"sms_vonage_from": sms_vonage_from,
|
2130
|
-
"sms_template": sms_template,
|
2131
|
-
"hook_mfa_verification_attempt_enabled": hook_mfa_verification_attempt_enabled,
|
2132
|
-
"hook_mfa_verification_attempt_uri": hook_mfa_verification_attempt_uri,
|
2133
|
-
"hook_mfa_verification_attempt_secrets": hook_mfa_verification_attempt_secrets,
|
2134
|
-
"hook_password_verification_attempt_enabled": hook_password_verification_attempt_enabled,
|
2135
|
-
"hook_password_verification_attempt_uri": hook_password_verification_attempt_uri,
|
2136
|
-
"hook_password_verification_attempt_secrets": hook_password_verification_attempt_secrets,
|
2137
|
-
"hook_custom_access_token_enabled": hook_custom_access_token_enabled,
|
2138
|
-
"hook_custom_access_token_uri": hook_custom_access_token_uri,
|
2139
|
-
"hook_custom_access_token_secrets": hook_custom_access_token_secrets,
|
2140
|
-
"hook_send_sms_enabled": hook_send_sms_enabled,
|
2141
|
-
"hook_send_sms_uri": hook_send_sms_uri,
|
2142
|
-
"hook_send_sms_secrets": hook_send_sms_secrets,
|
2143
|
-
"hook_send_email_enabled": hook_send_email_enabled,
|
2144
|
-
"hook_send_email_uri": hook_send_email_uri,
|
2145
|
-
"hook_send_email_secrets": hook_send_email_secrets,
|
2146
|
-
"external_apple_enabled": external_apple_enabled,
|
2147
|
-
"external_apple_client_id": external_apple_client_id,
|
2148
|
-
"external_apple_secret": external_apple_secret,
|
2149
|
-
"external_apple_additional_client_ids": external_apple_additional_client_ids,
|
2150
|
-
"external_azure_enabled": external_azure_enabled,
|
2151
|
-
"external_azure_client_id": external_azure_client_id,
|
2152
|
-
"external_azure_secret": external_azure_secret,
|
2153
|
-
"external_azure_url": external_azure_url,
|
2154
|
-
"external_bitbucket_enabled": external_bitbucket_enabled,
|
2155
|
-
"external_bitbucket_client_id": external_bitbucket_client_id,
|
2156
|
-
"external_bitbucket_secret": external_bitbucket_secret,
|
2157
|
-
"external_discord_enabled": external_discord_enabled,
|
2158
|
-
"external_discord_client_id": external_discord_client_id,
|
2159
|
-
"external_discord_secret": external_discord_secret,
|
2160
|
-
"external_facebook_enabled": external_facebook_enabled,
|
2161
|
-
"external_facebook_client_id": external_facebook_client_id,
|
2162
|
-
"external_facebook_secret": external_facebook_secret,
|
2163
|
-
"external_figma_enabled": external_figma_enabled,
|
2164
|
-
"external_figma_client_id": external_figma_client_id,
|
2165
|
-
"external_figma_secret": external_figma_secret,
|
2166
|
-
"external_github_enabled": external_github_enabled,
|
2167
|
-
"external_github_client_id": external_github_client_id,
|
2168
|
-
"external_github_secret": external_github_secret,
|
2169
|
-
"external_gitlab_enabled": external_gitlab_enabled,
|
2170
|
-
"external_gitlab_client_id": external_gitlab_client_id,
|
2171
|
-
"external_gitlab_secret": external_gitlab_secret,
|
2172
|
-
"external_gitlab_url": external_gitlab_url,
|
2173
|
-
"external_google_enabled": external_google_enabled,
|
2174
|
-
"external_google_client_id": external_google_client_id,
|
2175
|
-
"external_google_secret": external_google_secret,
|
2176
|
-
"external_google_additional_client_ids": external_google_additional_client_ids,
|
2177
|
-
"external_google_skip_nonce_check": external_google_skip_nonce_check,
|
2178
|
-
"external_kakao_enabled": external_kakao_enabled,
|
2179
|
-
"external_kakao_client_id": external_kakao_client_id,
|
2180
|
-
"external_kakao_secret": external_kakao_secret,
|
2181
|
-
"external_keycloak_enabled": external_keycloak_enabled,
|
2182
|
-
"external_keycloak_client_id": external_keycloak_client_id,
|
2183
|
-
"external_keycloak_secret": external_keycloak_secret,
|
2184
|
-
"external_keycloak_url": external_keycloak_url,
|
2185
|
-
"external_linkedin_oidc_enabled": external_linkedin_oidc_enabled,
|
2186
|
-
"external_linkedin_oidc_client_id": external_linkedin_oidc_client_id,
|
2187
|
-
"external_linkedin_oidc_secret": external_linkedin_oidc_secret,
|
2188
|
-
"external_slack_oidc_enabled": external_slack_oidc_enabled,
|
2189
|
-
"external_slack_oidc_client_id": external_slack_oidc_client_id,
|
2190
|
-
"external_slack_oidc_secret": external_slack_oidc_secret,
|
2191
|
-
"external_notion_enabled": external_notion_enabled,
|
2192
|
-
"external_notion_client_id": external_notion_client_id,
|
2193
|
-
"external_notion_secret": external_notion_secret,
|
2194
|
-
"external_slack_enabled": external_slack_enabled,
|
2195
|
-
"external_slack_client_id": external_slack_client_id,
|
2196
|
-
"external_slack_secret": external_slack_secret,
|
2197
|
-
"external_spotify_enabled": external_spotify_enabled,
|
2198
|
-
"external_spotify_client_id": external_spotify_client_id,
|
2199
|
-
"external_spotify_secret": external_spotify_secret,
|
2200
|
-
"external_twitch_enabled": external_twitch_enabled,
|
2201
|
-
"external_twitch_client_id": external_twitch_client_id,
|
2202
|
-
"external_twitch_secret": external_twitch_secret,
|
2203
|
-
"external_twitter_enabled": external_twitter_enabled,
|
2204
|
-
"external_twitter_client_id": external_twitter_client_id,
|
2205
|
-
"external_twitter_secret": external_twitter_secret,
|
2206
|
-
"external_workos_enabled": external_workos_enabled,
|
2207
|
-
"external_workos_client_id": external_workos_client_id,
|
2208
|
-
"external_workos_secret": external_workos_secret,
|
2209
|
-
"external_workos_url": external_workos_url,
|
2210
|
-
"external_zoom_enabled": external_zoom_enabled,
|
2211
|
-
"external_zoom_client_id": external_zoom_client_id,
|
2212
|
-
"external_zoom_secret": external_zoom_secret,
|
2213
|
-
"db_max_pool_size": db_max_pool_size,
|
2214
|
-
"api_max_request_duration": api_max_request_duration,
|
2215
|
-
"mfa_totp_enroll_enabled": mfa_totp_enroll_enabled,
|
2216
|
-
"mfa_totp_verify_enabled": mfa_totp_verify_enabled,
|
2217
|
-
"mfa_web_authn_enroll_enabled": mfa_web_authn_enroll_enabled,
|
2218
|
-
"mfa_web_authn_verify_enabled": mfa_web_authn_verify_enabled,
|
2219
|
-
"mfa_phone_enroll_enabled": mfa_phone_enroll_enabled,
|
2220
|
-
"mfa_phone_verify_enabled": mfa_phone_verify_enabled,
|
2221
|
-
"mfa_phone_max_frequency": mfa_phone_max_frequency,
|
2222
|
-
"mfa_phone_otp_length": mfa_phone_otp_length,
|
2223
|
-
"mfa_phone_template": mfa_phone_template,
|
2224
|
-
}
|
2225
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
2226
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/auth"
|
2227
|
-
query_params = {}
|
2228
|
-
response = self._patch(url, data=request_body, params=query_params)
|
2229
|
-
response.raise_for_status()
|
2230
|
-
return response.json()
|
2231
|
-
|
2232
|
-
def create_tpafor_project(
|
2233
|
-
self, ref, oidc_issuer_url=None, jwks_url=None, custom_jwks=None
|
2234
|
-
) -> dict[str, Any]:
|
2235
|
-
"""
|
2236
|
-
Creates a third-party authentication (TPA) configuration for a specific project using provided OIDC or JWKS details.
|
2237
|
-
|
2238
|
-
Args:
|
2239
|
-
ref: str. The unique identifier of the project for which to create the third-party auth configuration.
|
2240
|
-
oidc_issuer_url: str, optional. The OpenID Connect (OIDC) issuer URL for the authentication provider. Defaults to None.
|
2241
|
-
jwks_url: str, optional. The JSON Web Key Set (JWKS) URL for key verification. Defaults to None.
|
2242
|
-
custom_jwks: Any, optional. Custom JWKS data to use for authentication. Defaults to None.
|
2243
|
-
|
2244
|
-
Returns:
|
2245
|
-
dict[str, Any]: The server response containing details of the created third-party authentication configuration.
|
2246
|
-
|
2247
|
-
Raises:
|
2248
|
-
ValueError: If the required parameter 'ref' is missing.
|
2249
|
-
requests.HTTPError: If the HTTP request fails or the server responds with an error status code.
|
2250
|
-
|
2251
|
-
Tags:
|
2252
|
-
create, third-party-auth, project-management, api
|
2253
|
-
"""
|
2254
|
-
if ref is None:
|
2255
|
-
raise ValueError("Missing required parameter 'ref'")
|
2256
|
-
request_body = {
|
2257
|
-
"oidc_issuer_url": oidc_issuer_url,
|
2258
|
-
"jwks_url": jwks_url,
|
2259
|
-
"custom_jwks": custom_jwks,
|
2260
|
-
}
|
2261
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
2262
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/auth/third-party-auth"
|
2263
|
-
query_params = {}
|
2264
|
-
response = self._post(url, data=request_body, params=query_params)
|
2265
|
-
response.raise_for_status()
|
2266
|
-
return response.json()
|
2267
|
-
|
2268
|
-
def list_tpafor_project(self, ref) -> list[Any]:
|
2269
|
-
"""
|
2270
|
-
Retrieves the list of third-party authentication configurations for a specified project.
|
2271
|
-
|
2272
|
-
Args:
|
2273
|
-
ref: str. The reference identifier of the project whose third-party authentication configurations are to be listed.
|
2274
|
-
|
2275
|
-
Returns:
|
2276
|
-
list[Any]: A list of dictionaries representing the third-party authentication configurations for the given project.
|
2277
|
-
|
2278
|
-
Raises:
|
2279
|
-
ValueError: If the 'ref' parameter is None.
|
2280
|
-
requests.HTTPError: If the HTTP request to the backend service returns an unsuccessful status.
|
2281
|
-
|
2282
|
-
Tags:
|
2283
|
-
list, third-party-auth, project-management, api-call
|
2284
|
-
"""
|
2285
|
-
if ref is None:
|
2286
|
-
raise ValueError("Missing required parameter 'ref'")
|
2287
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/auth/third-party-auth"
|
2288
|
-
query_params = {}
|
2289
|
-
response = self._get(url, params=query_params)
|
2290
|
-
response.raise_for_status()
|
2291
|
-
return response.json()
|
2292
|
-
|
2293
|
-
def delete_tpafor_project(self, ref, tpa_id) -> dict[str, Any]:
|
2294
|
-
"""
|
2295
|
-
Deletes a third-party authentication provider configuration for a given project.
|
2296
|
-
|
2297
|
-
Args:
|
2298
|
-
ref: str. The project reference or identifier.
|
2299
|
-
tpa_id: str. The unique identifier of the third-party authentication provider to delete.
|
2300
|
-
|
2301
|
-
Returns:
|
2302
|
-
dict. A JSON dictionary containing the API's response to the deletion request.
|
2303
|
-
|
2304
|
-
Raises:
|
2305
|
-
ValueError: Raised if 'ref' or 'tpa_id' is None.
|
2306
|
-
requests.HTTPError: Raised if the HTTP request returns an unsuccessful status code.
|
2307
|
-
|
2308
|
-
Tags:
|
2309
|
-
delete, management
|
2310
|
-
"""
|
2311
|
-
if ref is None:
|
2312
|
-
raise ValueError("Missing required parameter 'ref'")
|
2313
|
-
if tpa_id is None:
|
2314
|
-
raise ValueError("Missing required parameter 'tpa_id'")
|
2315
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}"
|
2316
|
-
query_params = {}
|
2317
|
-
response = self._delete(url, params=query_params)
|
2318
|
-
response.raise_for_status()
|
2319
|
-
return response.json()
|
2320
|
-
|
2321
|
-
def get_tpafor_project(self, ref, tpa_id) -> dict[str, Any]:
|
2322
|
-
"""
|
2323
|
-
Retrieve the third-party authentication configuration for a specific project and TPA identifier.
|
2324
|
-
|
2325
|
-
Args:
|
2326
|
-
ref: The unique reference or identifier for the project.
|
2327
|
-
tpa_id: The identifier of the third-party authentication provider to fetch.
|
2328
|
-
|
2329
|
-
Returns:
|
2330
|
-
A dictionary containing the third-party authentication configuration details for the specified project and TPA provider.
|
2331
|
-
|
2332
|
-
Raises:
|
2333
|
-
ValueError: Raised if the 'ref' or 'tpa_id' parameters are None.
|
2334
|
-
HTTPError: Raised if the HTTP request to retrieve the configuration fails with a non-success status code.
|
2335
|
-
|
2336
|
-
Tags:
|
2337
|
-
get, fetch, third-party-auth, project, management
|
2338
|
-
"""
|
2339
|
-
if ref is None:
|
2340
|
-
raise ValueError("Missing required parameter 'ref'")
|
2341
|
-
if tpa_id is None:
|
2342
|
-
raise ValueError("Missing required parameter 'tpa_id'")
|
2343
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/auth/third-party-auth/{tpa_id}"
|
2344
|
-
query_params = {}
|
2345
|
-
response = self._get(url, params=query_params)
|
2346
|
-
response.raise_for_status()
|
2347
|
-
return response.json()
|
2348
|
-
|
2349
|
-
def v1_run_a_query(self, ref, query) -> dict[str, Any]:
|
2350
|
-
"""
|
2351
|
-
Executes a database query for a specified project reference using the provided query string.
|
2352
|
-
|
2353
|
-
Args:
|
2354
|
-
ref: The unique project reference identifier (str) for which the database query will be executed.
|
2355
|
-
query: The query string (str) to be executed against the database.
|
2356
|
-
|
2357
|
-
Returns:
|
2358
|
-
A dictionary containing the JSON-decoded result of the query response.
|
2359
|
-
|
2360
|
-
Raises:
|
2361
|
-
ValueError: If either 'ref' or 'query' is None.
|
2362
|
-
HTTPError: If the HTTP request to the API fails or returns an error status.
|
2363
|
-
|
2364
|
-
Tags:
|
2365
|
-
query, database, api, execute
|
2366
|
-
"""
|
2367
|
-
if ref is None:
|
2368
|
-
raise ValueError("Missing required parameter 'ref'")
|
2369
|
-
if query is None:
|
2370
|
-
raise ValueError("Missing required parameter 'query'")
|
2371
|
-
request_body = {
|
2372
|
-
"query": query,
|
2373
|
-
}
|
2374
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
2375
|
-
url = f"{self.base_url}/v1/projects/{ref}/database/query"
|
2376
|
-
query_params = {}
|
2377
|
-
response = self._post(url, data=request_body, params=query_params)
|
2378
|
-
response.raise_for_status()
|
2379
|
-
return response.json()
|
2380
|
-
|
2381
|
-
def v1_enable_database_webhook(self, ref) -> Any:
|
2382
|
-
"""
|
2383
|
-
Enables the database webhook for the specified project reference.
|
2384
|
-
|
2385
|
-
Args:
|
2386
|
-
ref: The unique identifier of the project for which to enable the database webhook.
|
2387
|
-
|
2388
|
-
Returns:
|
2389
|
-
A dictionary containing the JSON response from the server after enabling the database webhook.
|
2390
|
-
|
2391
|
-
Raises:
|
2392
|
-
ValueError: Raised if the 'ref' parameter is None.
|
2393
|
-
requests.exceptions.HTTPError: Raised if the HTTP request to enable the database webhook fails.
|
2394
|
-
|
2395
|
-
Tags:
|
2396
|
-
enable, webhook, database, api, async_job
|
2397
|
-
"""
|
2398
|
-
if ref is None:
|
2399
|
-
raise ValueError("Missing required parameter 'ref'")
|
2400
|
-
url = f"{self.base_url}/v1/projects/{ref}/database/webhooks/enable"
|
2401
|
-
query_params = {}
|
2402
|
-
response = self._post(url, data={}, params=query_params)
|
2403
|
-
response.raise_for_status()
|
2404
|
-
return response.json()
|
2405
|
-
|
2406
|
-
def v1_list_all_functions(self, ref) -> list[Any]:
|
2407
|
-
"""
|
2408
|
-
Lists all available functions for the specified project reference.
|
2409
|
-
|
2410
|
-
Args:
|
2411
|
-
ref: The unique identifier or reference string for the project whose functions should be listed.
|
2412
|
-
|
2413
|
-
Returns:
|
2414
|
-
A list containing information about each available function in the specified project.
|
2415
|
-
|
2416
|
-
Raises:
|
2417
|
-
ValueError: Raised if the required 'ref' parameter is None.
|
2418
|
-
requests.HTTPError: Raised if the HTTP request to the backend API fails or returns an error status.
|
2419
|
-
|
2420
|
-
Tags:
|
2421
|
-
list, functions, api, management
|
2422
|
-
"""
|
2423
|
-
if ref is None:
|
2424
|
-
raise ValueError("Missing required parameter 'ref'")
|
2425
|
-
url = f"{self.base_url}/v1/projects/{ref}/functions"
|
2426
|
-
query_params = {}
|
2427
|
-
response = self._get(url, params=query_params)
|
2428
|
-
response.raise_for_status()
|
2429
|
-
return response.json()
|
2430
|
-
|
2431
|
-
def v1_get_a_function(self, ref, function_slug) -> dict[str, Any]:
|
2432
|
-
"""
|
2433
|
-
Retrieves detailed information about a specific function from a project using the function's reference and slug.
|
2434
|
-
|
2435
|
-
Args:
|
2436
|
-
ref: str. The unique reference ID of the project.
|
2437
|
-
function_slug: str. The slug identifier of the function to retrieve.
|
2438
|
-
|
2439
|
-
Returns:
|
2440
|
-
dict. A dictionary containing the JSON response with the function's details.
|
2441
|
-
|
2442
|
-
Raises:
|
2443
|
-
ValueError: Raised if either 'ref' or 'function_slug' is None.
|
2444
|
-
requests.HTTPError: Raised if the underlying HTTP request returned an unsuccessful status code.
|
2445
|
-
|
2446
|
-
Tags:
|
2447
|
-
get, function, ai, management
|
2448
|
-
"""
|
2449
|
-
if ref is None:
|
2450
|
-
raise ValueError("Missing required parameter 'ref'")
|
2451
|
-
if function_slug is None:
|
2452
|
-
raise ValueError("Missing required parameter 'function_slug'")
|
2453
|
-
url = f"{self.base_url}/v1/projects/{ref}/functions/{function_slug}"
|
2454
|
-
query_params = {}
|
2455
|
-
response = self._get(url, params=query_params)
|
2456
|
-
response.raise_for_status()
|
2457
|
-
return response.json()
|
2458
|
-
|
2459
|
-
def v1_update_a_function(
|
2460
|
-
self,
|
2461
|
-
ref,
|
2462
|
-
function_slug,
|
2463
|
-
slug=None,
|
2464
|
-
name=None,
|
2465
|
-
verify_jwt=None,
|
2466
|
-
import_map=None,
|
2467
|
-
entrypoint_path=None,
|
2468
|
-
import_map_path=None,
|
2469
|
-
body=None,
|
2470
|
-
) -> dict[str, Any]:
|
2471
|
-
"""
|
2472
|
-
Updates the configuration or code for an existing function in the specified project.
|
2473
|
-
|
2474
|
-
Args:
|
2475
|
-
ref: str. The reference ID of the project containing the function.
|
2476
|
-
function_slug: str. The unique identifier (slug) for the function to update.
|
2477
|
-
slug: Optional[str]. If provided, updates the function's slug (identifier).
|
2478
|
-
name: Optional[str]. Optionally updates the function's display name.
|
2479
|
-
verify_jwt: Optional[bool]. If set, specifies whether to verify JWT tokens for the function.
|
2480
|
-
import_map: Optional[str]. Specifies the path or identifier for an import map, if updating.
|
2481
|
-
entrypoint_path: Optional[str]. Path to the function's entrypoint within the project.
|
2482
|
-
import_map_path: Optional[str]. Path to the import map file.
|
2483
|
-
body: Optional[str]. The updated function code or body.
|
2484
|
-
|
2485
|
-
Returns:
|
2486
|
-
dict[str, Any]: A dictionary containing the updated function's metadata and settings as returned by the API.
|
2487
|
-
|
2488
|
-
Raises:
|
2489
|
-
ValueError: If either 'ref' or 'function_slug' is not provided.
|
2490
|
-
requests.HTTPError: If the API request fails with an HTTP error status.
|
2491
|
-
|
2492
|
-
Tags:
|
2493
|
-
update, function-management, api, patch
|
2494
|
-
"""
|
2495
|
-
if ref is None:
|
2496
|
-
raise ValueError("Missing required parameter 'ref'")
|
2497
|
-
if function_slug is None:
|
2498
|
-
raise ValueError("Missing required parameter 'function_slug'")
|
2499
|
-
request_body = {
|
2500
|
-
"name": name,
|
2501
|
-
"body": body,
|
2502
|
-
"verify_jwt": verify_jwt,
|
2503
|
-
}
|
2504
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
2505
|
-
url = f"{self.base_url}/v1/projects/{ref}/functions/{function_slug}"
|
2506
|
-
query_params = {
|
2507
|
-
k: v
|
2508
|
-
for k, v in [
|
2509
|
-
("slug", slug),
|
2510
|
-
("name", name),
|
2511
|
-
("verify_jwt", verify_jwt),
|
2512
|
-
("import_map", import_map),
|
2513
|
-
("entrypoint_path", entrypoint_path),
|
2514
|
-
("import_map_path", import_map_path),
|
2515
|
-
]
|
2516
|
-
if v is not None
|
2517
|
-
}
|
2518
|
-
response = self._patch(url, data=request_body, params=query_params)
|
2519
|
-
response.raise_for_status()
|
2520
|
-
return response.json()
|
2521
|
-
|
2522
|
-
def v1_delete_a_function(self, ref, function_slug) -> Any:
|
2523
|
-
"""
|
2524
|
-
Deletes a specified function from a project using its reference and function slug.
|
2525
|
-
|
2526
|
-
Args:
|
2527
|
-
ref: The unique identifier or reference for the project containing the function.
|
2528
|
-
function_slug: The unique slug or identifier of the function to delete.
|
2529
|
-
|
2530
|
-
Returns:
|
2531
|
-
The JSON-decoded response from the API after attempting to delete the function.
|
2532
|
-
|
2533
|
-
Raises:
|
2534
|
-
ValueError: Raised if either 'ref' or 'function_slug' is None.
|
2535
|
-
HTTPError: Raised if the HTTP request to delete the function fails (non-2xx status code).
|
2536
|
-
|
2537
|
-
Tags:
|
2538
|
-
delete, function-management, api
|
2539
|
-
"""
|
2540
|
-
if ref is None:
|
2541
|
-
raise ValueError("Missing required parameter 'ref'")
|
2542
|
-
if function_slug is None:
|
2543
|
-
raise ValueError("Missing required parameter 'function_slug'")
|
2544
|
-
url = f"{self.base_url}/v1/projects/{ref}/functions/{function_slug}"
|
2545
|
-
query_params = {}
|
2546
|
-
response = self._delete(url, params=query_params)
|
2547
|
-
response.raise_for_status()
|
2548
|
-
return response.json()
|
2549
|
-
|
2550
|
-
def v1_get_a_function_body(self, ref, function_slug) -> Any:
|
2551
|
-
"""
|
2552
|
-
Retrieves the body of a specified function from a project via a REST API call.
|
2553
|
-
|
2554
|
-
Args:
|
2555
|
-
ref: The unique identifier (string) of the project containing the function.
|
2556
|
-
function_slug: The unique slug (string) identifying the function whose body is to be retrieved.
|
2557
|
-
|
2558
|
-
Returns:
|
2559
|
-
A dictionary (parsed JSON) containing the function body and related metadata.
|
2560
|
-
|
2561
|
-
Raises:
|
2562
|
-
ValueError: If 'ref' or 'function_slug' is not provided.
|
2563
|
-
HTTPError: If the HTTP request to retrieve the function body fails due to a non-success response.
|
2564
|
-
|
2565
|
-
Tags:
|
2566
|
-
get, function-body, api, async-job
|
2567
|
-
"""
|
2568
|
-
if ref is None:
|
2569
|
-
raise ValueError("Missing required parameter 'ref'")
|
2570
|
-
if function_slug is None:
|
2571
|
-
raise ValueError("Missing required parameter 'function_slug'")
|
2572
|
-
url = f"{self.base_url}/v1/projects/{ref}/functions/{function_slug}/body"
|
2573
|
-
query_params = {}
|
2574
|
-
response = self._get(url, params=query_params)
|
2575
|
-
response.raise_for_status()
|
2576
|
-
return response.json()
|
2577
|
-
|
2578
|
-
def v1_list_all_buckets(self, ref) -> list[Any]:
|
2579
|
-
"""
|
2580
|
-
Retrieves a list of all storage buckets for the specified project reference.
|
2581
|
-
|
2582
|
-
Args:
|
2583
|
-
ref: The identifier of the project for which to list storage buckets. Must not be None.
|
2584
|
-
|
2585
|
-
Returns:
|
2586
|
-
A list containing information about each storage bucket associated with the project.
|
2587
|
-
|
2588
|
-
Raises:
|
2589
|
-
ValueError: Raised if the 'ref' parameter is None.
|
2590
|
-
requests.HTTPError: Raised if the HTTP request to the storage buckets endpoint returns an unsuccessful status.
|
2591
|
-
|
2592
|
-
Tags:
|
2593
|
-
list, buckets, storage, project, sync
|
2594
|
-
"""
|
2595
|
-
if ref is None:
|
2596
|
-
raise ValueError("Missing required parameter 'ref'")
|
2597
|
-
url = f"{self.base_url}/v1/projects/{ref}/storage/buckets"
|
2598
|
-
query_params = {}
|
2599
|
-
response = self._get(url, params=query_params)
|
2600
|
-
response.raise_for_status()
|
2601
|
-
return response.json()
|
2602
|
-
|
2603
|
-
def v1_create_a_sso_provider(
|
2604
|
-
self,
|
2605
|
-
ref,
|
2606
|
-
type,
|
2607
|
-
metadata_xml=None,
|
2608
|
-
metadata_url=None,
|
2609
|
-
domains=None,
|
2610
|
-
attribute_mapping=None,
|
2611
|
-
) -> dict[str, Any]:
|
2612
|
-
"""
|
2613
|
-
Creates a new Single Sign-On (SSO) provider configuration for the specified project.
|
2614
|
-
|
2615
|
-
Args:
|
2616
|
-
ref: str. Unique reference or ID of the project where the SSO provider will be added.
|
2617
|
-
type: str. The type of SSO provider (e.g., 'saml', 'oidc'). Required.
|
2618
|
-
metadata_xml: Optional[str]. The SAML metadata XML. Required for some types of SSO providers.
|
2619
|
-
metadata_url: Optional[str]. URL pointing to the SSO provider's metadata. Used as an alternative to 'metadata_xml.'
|
2620
|
-
domains: Optional[list[str]]. List of domains associated with this SSO provider.
|
2621
|
-
attribute_mapping: Optional[dict[str, str]]. Mapping of user attributes from the SSO provider to internal fields.
|
2622
|
-
|
2623
|
-
Returns:
|
2624
|
-
dict[str, Any]: JSON response containing details of the newly created SSO provider configuration.
|
2625
|
-
|
2626
|
-
Raises:
|
2627
|
-
ValueError: If either 'ref' or 'type' is missing or None.
|
2628
|
-
requests.exceptions.HTTPError: If the API request fails or returns an unsuccessful status.
|
2629
|
-
|
2630
|
-
Tags:
|
2631
|
-
create, sso, provider, management, auth
|
2632
|
-
"""
|
2633
|
-
if ref is None:
|
2634
|
-
raise ValueError("Missing required parameter 'ref'")
|
2635
|
-
if type is None:
|
2636
|
-
raise ValueError("Missing required parameter 'type'")
|
2637
|
-
request_body = {
|
2638
|
-
"type": type,
|
2639
|
-
"metadata_xml": metadata_xml,
|
2640
|
-
"metadata_url": metadata_url,
|
2641
|
-
"domains": domains,
|
2642
|
-
"attribute_mapping": attribute_mapping,
|
2643
|
-
}
|
2644
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
2645
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/auth/sso/providers"
|
2646
|
-
query_params = {}
|
2647
|
-
response = self._post(url, data=request_body, params=query_params)
|
2648
|
-
response.raise_for_status()
|
2649
|
-
return response.json()
|
2650
|
-
|
2651
|
-
def v1_list_all_sso_provider(self, ref) -> dict[str, Any]:
|
2652
|
-
"""
|
2653
|
-
Retrieves a list of all SSO providers configured for the specified project.
|
2654
|
-
|
2655
|
-
Args:
|
2656
|
-
ref: str. The project reference identifier for which to list SSO providers.
|
2657
|
-
|
2658
|
-
Returns:
|
2659
|
-
dict. A dictionary containing the SSO provider configuration details for the project.
|
2660
|
-
|
2661
|
-
Raises:
|
2662
|
-
ValueError: If the 'ref' parameter is None.
|
2663
|
-
requests.HTTPError: If the HTTP request to the backend fails.
|
2664
|
-
|
2665
|
-
Tags:
|
2666
|
-
list, sso, providers, management, api
|
2667
|
-
"""
|
2668
|
-
if ref is None:
|
2669
|
-
raise ValueError("Missing required parameter 'ref'")
|
2670
|
-
url = f"{self.base_url}/v1/projects/{ref}/config/auth/sso/providers"
|
2671
|
-
query_params = {}
|
2672
|
-
response = self._get(url, params=query_params)
|
2673
|
-
response.raise_for_status()
|
2674
|
-
return response.json()
|
2675
|
-
|
2676
|
-
def v1_get_a_sso_provider(self, ref, provider_id) -> dict[str, Any]:
|
2677
|
-
"""
|
2678
|
-
Retrieves details of a specific SSO provider configuration for the given project reference and provider ID.
|
2679
|
-
|
2680
|
-
Args:
|
2681
|
-
ref: str. The unique reference identifier for the project.
|
2682
|
-
provider_id: str. The identifier of the SSO provider to retrieve.
|
2683
|
-
|
2684
|
-
Returns:
|
2685
|
-
dict[str, Any]: A dictionary containing the configuration details of the specified SSO provider.
|
2686
|
-
|
2687
|
-
Raises:
|
2688
|
-
ValueError: Raised if 'ref' or 'provider_id' is None.
|
2689
|
-
requests.HTTPError: Raised if the HTTP request to fetch the SSO provider details fails.
|
2690
|
-
|
2691
|
-
Tags:
|
2692
|
-
get, sso-provider, configuration, management
|
2693
|
-
"""
|
2694
|
-
if ref is None:
|
2695
|
-
raise ValueError("Missing required parameter 'ref'")
|
2696
|
-
if provider_id is None:
|
2697
|
-
raise ValueError("Missing required parameter 'provider_id'")
|
2698
|
-
url = (
|
2699
|
-
f"{self.base_url}/v1/projects/{ref}/config/auth/sso/providers/{provider_id}"
|
2700
|
-
)
|
2701
|
-
query_params = {}
|
2702
|
-
response = self._get(url, params=query_params)
|
2703
|
-
response.raise_for_status()
|
2704
|
-
return response.json()
|
2705
|
-
|
2706
|
-
def v1_update_a_sso_provider(
|
2707
|
-
self,
|
2708
|
-
ref,
|
2709
|
-
provider_id,
|
2710
|
-
metadata_xml=None,
|
2711
|
-
metadata_url=None,
|
2712
|
-
domains=None,
|
2713
|
-
attribute_mapping=None,
|
2714
|
-
) -> dict[str, Any]:
|
2715
|
-
"""
|
2716
|
-
Updates the configuration of an existing SSO provider using the provided metadata and attributes.
|
2717
|
-
|
2718
|
-
Args:
|
2719
|
-
ref: str. Unique reference identifier for the project whose SSO provider configuration is being updated.
|
2720
|
-
provider_id: str. Identifier of the SSO provider to update.
|
2721
|
-
metadata_xml: str or None. Optional XML metadata for the SSO provider. If not provided, existing metadata is retained.
|
2722
|
-
metadata_url: str or None. Optional URL pointing to the metadata XML for the SSO provider.
|
2723
|
-
domains: list[str] or None. Optional list of domains associated with the SSO provider.
|
2724
|
-
attribute_mapping: dict or None. Optional mapping of SSO attributes to application-specific fields.
|
2725
|
-
|
2726
|
-
Returns:
|
2727
|
-
dict. JSON response containing details of the updated SSO provider configuration.
|
2728
|
-
|
2729
|
-
Raises:
|
2730
|
-
ValueError: If either 'ref' or 'provider_id' is not provided.
|
2731
|
-
requests.HTTPError: If the HTTP request to update the SSO provider fails (e.g., server returns an error status).
|
2732
|
-
|
2733
|
-
Tags:
|
2734
|
-
update, sso, provider-management, auth, v1
|
2735
|
-
"""
|
2736
|
-
if ref is None:
|
2737
|
-
raise ValueError("Missing required parameter 'ref'")
|
2738
|
-
if provider_id is None:
|
2739
|
-
raise ValueError("Missing required parameter 'provider_id'")
|
2740
|
-
request_body = {
|
2741
|
-
"metadata_xml": metadata_xml,
|
2742
|
-
"metadata_url": metadata_url,
|
2743
|
-
"domains": domains,
|
2744
|
-
"attribute_mapping": attribute_mapping,
|
2745
|
-
}
|
2746
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
2747
|
-
url = (
|
2748
|
-
f"{self.base_url}/v1/projects/{ref}/config/auth/sso/providers/{provider_id}"
|
2749
|
-
)
|
2750
|
-
query_params = {}
|
2751
|
-
response = self._put(url, data=request_body, params=query_params)
|
2752
|
-
response.raise_for_status()
|
2753
|
-
return response.json()
|
2754
|
-
|
2755
|
-
def v1_delete_a_sso_provider(self, ref, provider_id) -> dict[str, Any]:
|
2756
|
-
"""
|
2757
|
-
Deletes a specified SSO provider from the given project configuration.
|
2758
|
-
|
2759
|
-
Args:
|
2760
|
-
ref: str. Unique identifier of the project containing the SSO provider.
|
2761
|
-
provider_id: str. Unique identifier of the SSO provider to be deleted.
|
2762
|
-
|
2763
|
-
Returns:
|
2764
|
-
dict. JSON response from the server indicating the outcome of the delete operation.
|
2765
|
-
|
2766
|
-
Raises:
|
2767
|
-
ValueError: If 'ref' or 'provider_id' is None.
|
2768
|
-
requests.HTTPError: If the HTTP request to delete the provider fails.
|
2769
|
-
|
2770
|
-
Tags:
|
2771
|
-
delete, sso-provider, management
|
2772
|
-
"""
|
2773
|
-
if ref is None:
|
2774
|
-
raise ValueError("Missing required parameter 'ref'")
|
2775
|
-
if provider_id is None:
|
2776
|
-
raise ValueError("Missing required parameter 'provider_id'")
|
2777
|
-
url = (
|
2778
|
-
f"{self.base_url}/v1/projects/{ref}/config/auth/sso/providers/{provider_id}"
|
2779
|
-
)
|
2780
|
-
query_params = {}
|
2781
|
-
response = self._delete(url, params=query_params)
|
2782
|
-
response.raise_for_status()
|
2783
|
-
return response.json()
|
2784
|
-
|
2785
|
-
def v1_list_all_backups(self, ref) -> dict[str, Any]:
|
2786
|
-
"""
|
2787
|
-
Retrieves a list of all database backups for the specified project reference.
|
2788
|
-
|
2789
|
-
Args:
|
2790
|
-
ref: str. The unique project reference identifier used to specify the target project for which to list all database backups.
|
2791
|
-
|
2792
|
-
Returns:
|
2793
|
-
dict[str, Any]: A dictionary containing details of all database backups for the specified project.
|
2794
|
-
|
2795
|
-
Raises:
|
2796
|
-
ValueError: If 'ref' is None.
|
2797
|
-
requests.HTTPError: If the HTTP request to retrieve backups fails.
|
2798
|
-
|
2799
|
-
Tags:
|
2800
|
-
list, backups, database, sync, management
|
2801
|
-
"""
|
2802
|
-
if ref is None:
|
2803
|
-
raise ValueError("Missing required parameter 'ref'")
|
2804
|
-
url = f"{self.base_url}/v1/projects/{ref}/database/backups"
|
2805
|
-
query_params = {}
|
2806
|
-
response = self._get(url, params=query_params)
|
2807
|
-
response.raise_for_status()
|
2808
|
-
return response.json()
|
2809
|
-
|
2810
|
-
def v1_restore_pitr_backup(self, ref, recovery_time_target_unix) -> Any:
|
2811
|
-
"""
|
2812
|
-
Initiates a point-in-time restore operation for a database backup using the specified reference and recovery time target.
|
2813
|
-
|
2814
|
-
Args:
|
2815
|
-
ref: str. The reference identifier of the project whose database backup should be restored.
|
2816
|
-
recovery_time_target_unix: int. The Unix timestamp representing the target point in time to which the database should be restored.
|
2817
|
-
|
2818
|
-
Returns:
|
2819
|
-
dict. The JSON-decoded response containing details about the point-in-time restore operation.
|
2820
|
-
|
2821
|
-
Raises:
|
2822
|
-
ValueError: If 'ref' or 'recovery_time_target_unix' is None.
|
2823
|
-
requests.HTTPError: If the HTTP request to initiate the restore fails or returns an error status.
|
2824
|
-
|
2825
|
-
Tags:
|
2826
|
-
restore, backup, database, pitr, async-job, ai
|
2827
|
-
"""
|
2828
|
-
if ref is None:
|
2829
|
-
raise ValueError("Missing required parameter 'ref'")
|
2830
|
-
if recovery_time_target_unix is None:
|
2831
|
-
raise ValueError("Missing required parameter 'recovery_time_target_unix'")
|
2832
|
-
request_body = {
|
2833
|
-
"recovery_time_target_unix": recovery_time_target_unix,
|
2834
|
-
}
|
2835
|
-
request_body = {k: v for k, v in request_body.items() if v is not None}
|
2836
|
-
url = f"{self.base_url}/v1/projects/{ref}/database/backups/restore-pitr"
|
2837
|
-
query_params = {}
|
2838
|
-
response = self._post(url, data=request_body, params=query_params)
|
2839
|
-
response.raise_for_status()
|
2840
|
-
return response.json()
|
2841
|
-
|
2842
|
-
def v1_list_organization_members(self, slug) -> list[Any]:
|
2843
|
-
"""
|
2844
|
-
Retrieves a list of members associated with the specified organization slug via the v1 API.
|
2845
|
-
|
2846
|
-
Args:
|
2847
|
-
slug: str. The unique identifier (slug) of the organization whose members are to be listed.
|
2848
|
-
|
2849
|
-
Returns:
|
2850
|
-
list[Any]: A list containing the JSON-parsed member data for the specified organization.
|
2851
|
-
|
2852
|
-
Raises:
|
2853
|
-
ValueError: Raised if the 'slug' parameter is None.
|
2854
|
-
requests.HTTPError: Raised if the HTTP request to the API endpoint returns an error status.
|
2855
|
-
|
2856
|
-
Tags:
|
2857
|
-
list, organization, members, api
|
2858
|
-
"""
|
2859
|
-
if slug is None:
|
2860
|
-
raise ValueError("Missing required parameter 'slug'")
|
2861
|
-
url = f"{self.base_url}/v1/organizations/{slug}/members"
|
2862
|
-
query_params = {}
|
2863
|
-
response = self._get(url, params=query_params)
|
2864
|
-
response.raise_for_status()
|
2865
|
-
return response.json()
|
2866
|
-
|
2867
|
-
def v1_get_an_organization(self, slug) -> dict[str, Any]:
|
2868
|
-
"""
|
2869
|
-
Retrieves details of a specific organization by its unique slug identifier.
|
2870
|
-
|
2871
|
-
Args:
|
2872
|
-
slug: str. The unique slug identifier for the organization to retrieve.
|
2873
|
-
|
2874
|
-
Returns:
|
2875
|
-
dict[str, Any]: A dictionary containing the organization's details as returned by the API.
|
2876
|
-
|
2877
|
-
Raises:
|
2878
|
-
ValueError: If the 'slug' parameter is None.
|
2879
|
-
requests.HTTPError: If the HTTP request to the API fails or the server returns an error response.
|
2880
|
-
|
2881
|
-
Tags:
|
2882
|
-
get, organization, api
|
2883
|
-
"""
|
2884
|
-
if slug is None:
|
2885
|
-
raise ValueError("Missing required parameter 'slug'")
|
2886
|
-
url = f"{self.base_url}/v1/organizations/{slug}"
|
2887
|
-
query_params = {}
|
2888
|
-
response = self._get(url, params=query_params)
|
2889
|
-
response.raise_for_status()
|
2890
|
-
return response.json()
|
2891
|
-
|
2892
|
-
def list_tools(self):
|
2893
|
-
return [
|
2894
|
-
self.v1_get_a_branch_config,
|
2895
|
-
self.v1_update_a_branch_config,
|
2896
|
-
self.v1_delete_a_branch,
|
2897
|
-
self.v1_reset_a_branch,
|
2898
|
-
self.v1_list_all_projects,
|
2899
|
-
self.v1_create_a_project,
|
2900
|
-
self.v1_list_all_organizations,
|
2901
|
-
self.v1_create_an_organization,
|
2902
|
-
self.v1_authorize_user,
|
2903
|
-
self.v1_list_all_snippets,
|
2904
|
-
self.v1_get_a_snippet,
|
2905
|
-
self.v1_get_project_api_keys,
|
2906
|
-
self.create_api_key,
|
2907
|
-
self.update_api_key,
|
2908
|
-
self.delete_api_key,
|
2909
|
-
self.v1_list_all_branches,
|
2910
|
-
self.v1_create_a_branch,
|
2911
|
-
self.v1_disable_preview_branching,
|
2912
|
-
self.v1_get_hostname_config,
|
2913
|
-
self.v1_verify_dns_config,
|
2914
|
-
self.v1_activate_custom_hostname,
|
2915
|
-
self.v1_list_all_network_bans,
|
2916
|
-
self.v1_delete_network_bans,
|
2917
|
-
self.v1_get_network_restrictions,
|
2918
|
-
self.v1_update_network_restrictions,
|
2919
|
-
self.v1_get_pgsodium_config,
|
2920
|
-
self.v1_update_pgsodium_config,
|
2921
|
-
self.v1_get_postgrest_service_config,
|
2922
|
-
self.v1_update_postgrest_service_config,
|
2923
|
-
self.v1_delete_a_project,
|
2924
|
-
self.v1_list_all_secrets,
|
2925
|
-
self.v1_bulk_create_secrets,
|
2926
|
-
self.v1_bulk_delete_secrets,
|
2927
|
-
self.v1_get_ssl_enforcement_config,
|
2928
|
-
self.v1_update_ssl_enforcement_config,
|
2929
|
-
self.v1_generate_typescript_types,
|
2930
|
-
self.v1_get_vanity_subdomain_config,
|
2931
|
-
self.v1_deactivate_vanity_subdomain_config,
|
2932
|
-
self.v1_check_vanity_subdomain_availability,
|
2933
|
-
self.v1_activate_vanity_subdomain_config,
|
2934
|
-
self.v1_upgrade_postgres_version,
|
2935
|
-
self.v1_get_postgrest_upgrade_eligibility,
|
2936
|
-
self.v1_get_postgrest_upgrade_status,
|
2937
|
-
self.v1_get_readonly_mode_status,
|
2938
|
-
self.v1_disable_readonly_mode_temporarily,
|
2939
|
-
self.v1_setup_a_read_replica,
|
2940
|
-
self.v1_remove_a_read_replica,
|
2941
|
-
self.v1_get_services_health,
|
2942
|
-
self.v1_get_postgres_config,
|
2943
|
-
self.v1_update_postgres_config,
|
2944
|
-
self.v1_get_project_pgbouncer_config,
|
2945
|
-
self.v1_get_supavisor_config,
|
2946
|
-
self.v1_update_supavisor_config,
|
2947
|
-
self.v1_get_auth_service_config,
|
2948
|
-
self.v1_update_auth_service_config,
|
2949
|
-
self.create_tpafor_project,
|
2950
|
-
self.list_tpafor_project,
|
2951
|
-
self.delete_tpafor_project,
|
2952
|
-
self.get_tpafor_project,
|
2953
|
-
self.v1_run_a_query,
|
2954
|
-
self.v1_enable_database_webhook,
|
2955
|
-
self.v1_list_all_functions,
|
2956
|
-
self.v1_get_a_function,
|
2957
|
-
self.v1_update_a_function,
|
2958
|
-
self.v1_delete_a_function,
|
2959
|
-
self.v1_get_a_function_body,
|
2960
|
-
self.v1_list_all_buckets,
|
2961
|
-
self.v1_create_a_sso_provider,
|
2962
|
-
self.v1_list_all_sso_provider,
|
2963
|
-
self.v1_get_a_sso_provider,
|
2964
|
-
self.v1_update_a_sso_provider,
|
2965
|
-
self.v1_delete_a_sso_provider,
|
2966
|
-
self.v1_list_all_backups,
|
2967
|
-
self.v1_restore_pitr_backup,
|
2968
|
-
self.v1_list_organization_members,
|
2969
|
-
self.v1_get_an_organization,
|
2970
|
-
]
|