From b2aae0e49623d61ef1fe7cbec21f8548223e57a3 Mon Sep 17 00:00:00 2001 From: Abhijit Bharadwaj Date: Mon, 4 May 2026 22:57:29 -0700 Subject: [PATCH 1/3] Fix flow log models and resource type paths --- nexla_sdk/models/flows/responses.py | 53 ++++++++++++- nexla_sdk/resources/flows.py | 65 +++++++++------- nexla_sdk/resources/metrics.py | 71 ++++++++++++++---- nexla_sdk/resources/organizations.py | 11 ++- nexla_sdk/resources/users.py | 20 +++-- tests/unit/test_flows.py | 108 +++++++++++++++++---------- tests/unit/test_metrics.py | 87 ++++++++++++++++++--- tests/unit/test_organizations.py | 19 +++++ tests/utils/mock_builders.py | 24 +++--- 9 files changed, 347 insertions(+), 111 deletions(-) diff --git a/nexla_sdk/models/flows/responses.py b/nexla_sdk/models/flows/responses.py index 57761a3..d7c72d1 100644 --- a/nexla_sdk/models/flows/responses.py +++ b/nexla_sdk/models/flows/responses.py @@ -1,7 +1,7 @@ from datetime import datetime from typing import Any, Dict, List, Optional -from pydantic import Field +from pydantic import AliasChoices, Field, model_validator from nexla_sdk.models.base import BaseModel from nexla_sdk.models.common import FlowNode @@ -28,18 +28,49 @@ class FlowLogEntry(BaseModel): timestamp: Optional[datetime] = None level: Optional[str] = None message: Optional[str] = None + log: Optional[str] = None + log_type: Optional[str] = None + severity: Optional[str] = None resource_id: Optional[int] = None resource_type: Optional[str] = None run_id: Optional[int] = None details: Optional[Dict[str, Any]] = None + @model_validator(mode="before") + @classmethod + def normalize_live_log_fields(cls, data): + """Map live API log fields onto the SDK's existing convenience names.""" + if not isinstance(data, dict): + return data + + normalized = data.copy() + if "message" not in normalized and "log" in normalized: + normalized["message"] = normalized["log"] + if "level" not in normalized and "severity" in normalized: + normalized["level"] = normalized["severity"] + return normalized + class FlowLogsMeta(BaseModel): """Metadata for flow logs pagination.""" - current_page: Optional[int] = Field(default=None, alias="currentPage") - page_count: Optional[int] = Field(default=None, alias="pageCount") - total_count: Optional[int] = Field(default=None, alias="totalCount") + current_page: Optional[int] = Field( + default=None, + validation_alias=AliasChoices("currentPage", "current_page"), + serialization_alias="currentPage", + ) + page_count: Optional[int] = Field( + default=None, + validation_alias=AliasChoices("pageCount", "page_count", "pages_count"), + serialization_alias="pageCount", + ) + total_count: Optional[int] = Field( + default=None, + validation_alias=AliasChoices("totalCount", "total_count"), + serialization_alias="totalCount", + ) + org_id: Optional[int] = None + run_id: Optional[int] = None class FlowLogsResponse(BaseModel): @@ -57,6 +88,20 @@ class FlowLogsResponse(BaseModel): logs: List[FlowLogEntry] = Field(default_factory=list) meta: Optional[FlowLogsMeta] = None + @model_validator(mode="before") + @classmethod + def normalize_live_logs_shape(cls, data): + """Flatten live API logs.data/logs.meta into the SDK response model.""" + if not isinstance(data, dict) or not isinstance(data.get("logs"), dict): + return data + + logs = data["logs"] + normalized = data.copy() + normalized["logs"] = logs.get("data") or [] + if normalized.get("meta") is None: + normalized["meta"] = logs.get("meta") + return normalized + class FlowMetricData(BaseModel): """Flow metric data for a resource.""" diff --git a/nexla_sdk/resources/flows.py b/nexla_sdk/resources/flows.py index 43160a1..1ee8eac 100644 --- a/nexla_sdk/resources/flows.py +++ b/nexla_sdk/resources/flows.py @@ -9,6 +9,7 @@ FlowMetricsApiResponse, FlowResponse, ) +from nexla_sdk.models.metrics.enums import ResourceType from nexla_sdk.models.sources.requests import SourceUpdate from nexla_sdk.resources.base_resource import BaseResource @@ -83,20 +84,25 @@ def get( return self._parse_response(response) def get_by_resource( - self, resource_type: str, resource_id: int, flows_only: bool = False + self, + resource_type: Union[ResourceType, str], + resource_id: int, + flows_only: bool = False, ) -> FlowResponse: """ Get flow by resource ID. Args: - resource_type: Type of resource (data_sources, data_sets, data_sinks) + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). resource_id: Resource ID flows_only: Only return flow structure Returns: Flow response """ - path = f"/{resource_type}/{resource_id}/flow" + resource_type_value = ResourceType(resource_type).value + path = f"/{resource_type_value}/{resource_id}/flow" params = {"flows_only": 1} if flows_only else {} response = self._make_request("GET", path, params=params) @@ -280,24 +286,26 @@ def delete(self, flow_id: int) -> Dict[str, Any]: return super().delete(flow_id) def delete_by_resource( - self, resource_type: str, resource_id: int + self, resource_type: Union[ResourceType, str], resource_id: int ) -> Dict[str, Any]: """ Delete flow by resource ID. Args: - resource_type: Type of resource + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). resource_id: Resource ID Returns: Response status """ - path = f"/{resource_type}/{resource_id}/flow" + resource_type_value = ResourceType(resource_type).value + path = f"/{resource_type_value}/{resource_id}/flow" return self._make_request("DELETE", path) def activate_by_resource( self, - resource_type: str, + resource_type: Union[ResourceType, str], resource_id: int, all: bool = False, full_tree: bool = False, @@ -306,14 +314,16 @@ def activate_by_resource( Activate flow by resource ID. Args: - resource_type: Type of resource + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). resource_id: Resource ID all: Activate entire flow tree Returns: Activated flow """ - path = f"/{resource_type}/{resource_id}/activate" + resource_type_value = ResourceType(resource_type).value + path = f"/{resource_type_value}/{resource_id}/activate" params = {} if all: params["all"] = 1 @@ -325,7 +335,7 @@ def activate_by_resource( def pause_by_resource( self, - resource_type: str, + resource_type: Union[ResourceType, str], resource_id: int, all: bool = False, full_tree: bool = False, @@ -334,14 +344,16 @@ def pause_by_resource( Pause flow by resource ID. Args: - resource_type: Type of resource + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). resource_id: Resource ID all: Pause entire flow tree Returns: Paused flow """ - path = f"/{resource_type}/{resource_id}/pause" + resource_type_value = ResourceType(resource_type).value + path = f"/{resource_type_value}/{resource_id}/pause" params = {} if all: params["all"] = 1 @@ -472,26 +484,23 @@ def get_active_flows_metrics( params["org_id"] = org_id return self._make_request("GET", path, params=params) - def get_run_status( - self, resource_type: str, resource_id: int, run_id: int - ) -> Dict[str, Any]: + def get_run_status(self, flow_id: int, run_id: int) -> Dict[str, Any]: """ Get status of a specific flow run. Args: - resource_type: Type of resource (e.g., data_source, data_set, data_sink) - resource_id: Resource ID + flow_id: Flow ID run_id: Run ID Returns: Run status information """ - path = f"/{resource_type}s/{resource_id}/run_status/{run_id}" + path = f"{self._path}/{flow_id}/run_status/{run_id}" return self._make_request("GET", path) def get_logs( self, - resource_type: str, + resource_type: Union[ResourceType, str], resource_id: int, run_id: int, from_ts: int, @@ -502,11 +511,12 @@ def get_logs( """Get flow execution logs for a specific run id of a flow. Args: - resource_type: Type of resource (data_sources, data_sets, data_sinks) + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). resource_id: Resource ID run_id: Run ID to get logs for - from_ts: Start timestamp (Unix timestamp) - to_ts: End timestamp (Unix timestamp) + from_ts: Start timestamp (Unix timestamp in milliseconds) + to_ts: End timestamp (Unix timestamp in milliseconds) page: Page number for pagination per_page: Items per page @@ -514,7 +524,8 @@ def get_logs( FlowLogsResponse with log entries and pagination metadata, or raw dict if response doesn't match expected schema. """ - path = f"/data_flows/{resource_type}/{resource_id}/logs" + resource_type_value = ResourceType(resource_type).value + path = f"/{resource_type_value}/{resource_id}/flow/logs" params = { "run_id": run_id, "from": from_ts, @@ -533,7 +544,7 @@ def get_logs( def get_metrics( self, - resource_type: str, + resource_type: Union[ResourceType, str], resource_id: int, from_date: str, to_date: str = None, @@ -545,7 +556,8 @@ def get_metrics( """Get flow metrics for a flow node keyed by resource id. Args: - resource_type: Type of resource (data_sources, data_sets, data_sinks) + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). resource_id: Resource ID from_date: Start date (ISO format, e.g., '2023-01-17') to_date: End date (ISO format) @@ -558,7 +570,8 @@ def get_metrics( FlowMetricsApiResponse with metrics data and pagination, or raw dict if response doesn't match expected schema. """ - path = f"/data_flows/{resource_type}/{resource_id}/metrics" + resource_type_value = ResourceType(resource_type).value + path = f"/{resource_type_value}/{resource_id}/flow/metrics" params = {"from": from_date} if to_date: params["to"] = to_date diff --git a/nexla_sdk/resources/metrics.py b/nexla_sdk/resources/metrics.py index d3b6f3a..217875b 100644 --- a/nexla_sdk/resources/metrics.py +++ b/nexla_sdk/resources/metrics.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, Optional +from typing import Any, Dict, Optional, Union from nexla_sdk.models.metrics.enums import ResourceType from nexla_sdk.models.metrics.responses import MetricsByRunResponse, MetricsResponse @@ -20,7 +20,7 @@ def __init__(self, client): def get_resource_daily_metrics( self, - resource_type: ResourceType, + resource_type: Union[ResourceType, str], resource_id: int, from_date: str, to_date: Optional[str] = None, @@ -29,7 +29,8 @@ def get_resource_daily_metrics( Get daily metrics for a resource. Args: - resource_type: Type of resource (data_sources, data_sets, data_sinks) + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). resource_id: Resource ID from_date: Start date (YYYY-MM-DD) to_date: End date (optional) @@ -37,7 +38,8 @@ def get_resource_daily_metrics( Returns: Daily metrics """ - path = f"/{resource_type}/{resource_id}/metrics" + resource_type_value = ResourceType(resource_type).value + path = f"/{resource_type_value}/{resource_id}/metrics" params = {"from": from_date, "aggregate": 1} if to_date: params["to"] = to_date @@ -47,7 +49,7 @@ def get_resource_daily_metrics( def get_resource_metrics_by_run( self, - resource_type: ResourceType, + resource_type: Union[ResourceType, str], resource_id: int, groupby: Optional[str] = None, orderby: Optional[str] = None, @@ -58,7 +60,8 @@ def get_resource_metrics_by_run( Get metrics by run for a resource. Args: - resource_type: Type of resource + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). resource_id: Resource ID groupby: Group by field (runId, lastWritten) orderby: Order by field (runId, lastWritten) @@ -68,7 +71,8 @@ def get_resource_metrics_by_run( Returns: Metrics by run """ - path = f"/{resource_type}/{resource_id}/metrics/run_summary" + resource_type_value = ResourceType(resource_type).value + path = f"/{resource_type_value}/{resource_id}/metrics/run_summary" params = {} if groupby: params["groupby"] = groupby @@ -94,7 +98,7 @@ def get_rate_limits(self) -> Dict[str, Any]: def get_resource_flow_metrics( self, - resource_type: str, + resource_type: Union[ResourceType, str], resource_id: int, metric_type: str = None, ) -> Dict[str, Any]: @@ -102,17 +106,19 @@ def get_resource_flow_metrics( Get flow metrics for a specific resource. Args: - resource_type: Type of resource (e.g., data_source, data_set, data_sink) + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). resource_id: Resource ID metric_type: Specific metric type to retrieve (optional) Returns: Flow metrics for the resource """ + resource_type_value = ResourceType(resource_type).value if metric_type: - path = f"/{resource_type}s/{resource_id}/flow/{metric_type}" + path = f"/{resource_type_value}/{resource_id}/flow/{metric_type}" else: - path = f"/{resource_type}s/{resource_id}/flow" + path = f"/{resource_type_value}/{resource_id}/flow" return self._make_request("GET", path) def get_flow_metrics_summary(self, period: str) -> Dict[str, Any]: @@ -131,7 +137,7 @@ def get_flow_metrics_summary(self, period: str) -> Dict[str, Any]: # Convenience wrappers for flow-level logs/metrics def get_flow_metrics( self, - resource_type: str, + resource_type: Union[ResourceType, str], resource_id: int, from_date: str, to_date: str = None, @@ -140,7 +146,25 @@ def get_flow_metrics( page: int = None, per_page: int = None, ) -> Dict[str, Any]: - path = f"/data_flows/{resource_type}/{resource_id}/metrics" + """ + Get flow metrics for a flow node keyed by resource ID. + + Args: + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). + resource_id: Resource ID + from_date: Start date (YYYY-MM-DD) + to_date: End date (optional) + groupby: Group metrics by field + orderby: Order metrics by field + page: Page number + per_page: Items per page + + Returns: + Flow metrics for the resource + """ + resource_type_value = ResourceType(resource_type).value + path = f"/{resource_type_value}/{resource_id}/flow/metrics" params = {"from": from_date} if to_date: params["to"] = to_date @@ -156,7 +180,7 @@ def get_flow_metrics( def get_flow_logs( self, - resource_type: str, + resource_type: Union[ResourceType, str], resource_id: int, run_id: int, from_ts: int, @@ -164,7 +188,24 @@ def get_flow_logs( page: int = None, per_page: int = None, ) -> Dict[str, Any]: - path = f"/data_flows/{resource_type}/{resource_id}/logs" + """ + Get flow logs for a flow run keyed by resource ID. + + Args: + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). + resource_id: Resource ID + run_id: Run ID + from_ts: Start timestamp (Unix timestamp in milliseconds) + to_ts: End timestamp in milliseconds (optional) + page: Page number + per_page: Items per page + + Returns: + Flow logs for the resource run + """ + resource_type_value = ResourceType(resource_type).value + path = f"/{resource_type_value}/{resource_id}/flow/logs" params = {"run_id": run_id, "from": from_ts} if to_ts is not None: params["to"] = to_ts diff --git a/nexla_sdk/resources/organizations.py b/nexla_sdk/resources/organizations.py index d1368e1..19935c1 100644 --- a/nexla_sdk/resources/organizations.py +++ b/nexla_sdk/resources/organizations.py @@ -1,6 +1,7 @@ -from typing import Any, Dict, List +from typing import Any, Dict, List, Union from nexla_sdk.models.common import LogEntry +from nexla_sdk.models.metrics.enums import ResourceType from nexla_sdk.models.organizations.custodians import OrgCustodiansPayload from nexla_sdk.models.organizations.requests import ( OrganizationCreate, @@ -291,20 +292,22 @@ def get_flow_status_metrics( return self._make_request("GET", path, params=params) def get_resource_audit_log( - self, org_id: int, resource_type: str, **params + self, org_id: int, resource_type: Union[ResourceType, str], **params ) -> List[LogEntry]: """ Get audit log for a specific resource type within an organization. Args: org_id: Organization ID - resource_type: The type of resource (e.g., 'data_source', 'data_sink') + resource_type: ResourceType or exact string value + ("data_sources", "data_sets", "data_sinks"). **params: Additional query parameters Returns: List of audit log entries """ - path = f"{self._path}/{org_id}/{resource_type}/audit_log" + resource_type_value = ResourceType(resource_type).value + path = f"{self._path}/{org_id}/{resource_type_value}/audit_log" response = self._make_request("GET", path, params=params) return [LogEntry.model_validate(item) for item in response] diff --git a/nexla_sdk/resources/users.py b/nexla_sdk/resources/users.py index 10039a6..96e266f 100644 --- a/nexla_sdk/resources/users.py +++ b/nexla_sdk/resources/users.py @@ -1,4 +1,4 @@ -from typing import Any, Dict, List, Optional +from typing import Any, Dict, List, Optional, Union from nexla_sdk.models.metrics.enums import UserMetricResourceType from nexla_sdk.models.users.requests import UserCreate, UserUpdate @@ -288,7 +288,11 @@ def get_account_metrics( return self._make_request("GET", path, params=params) def get_flow_status_metrics( - self, user_id: int, from_date: str = None, page: int = None, per_page: int = None + self, + user_id: int, + from_date: str = None, + page: int = None, + per_page: int = None, ) -> Dict[str, Any]: """ Get flow status metrics for a user. @@ -335,7 +339,7 @@ def get_dashboard_metrics( def get_daily_metrics( self, user_id: int, - resource_type: UserMetricResourceType, + resource_type: Union[UserMetricResourceType, str], from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None, @@ -345,7 +349,8 @@ def get_daily_metrics( Args: user_id: User ID - resource_type: Type of resource (SOURCE, SINK) + resource_type: UserMetricResourceType or exact string value + ("SOURCE", "SINK"). from_date: Start date (YYYY-MM-DD) to_date: End date (optional) org_id: Organization ID (optional) @@ -353,8 +358,13 @@ def get_daily_metrics( Returns: Daily metrics data """ + resource_type_value = UserMetricResourceType(resource_type).value path = f"{self._path}/{user_id}/metrics" - params = {"resource_type": resource_type, "from": from_date, "aggregate": 1} + params = { + "resource_type": resource_type_value, + "from": from_date, + "aggregate": 1, + } if to_date: params["to"] = to_date if org_id: diff --git a/tests/unit/test_flows.py b/tests/unit/test_flows.py index 397d616..038f0ea 100644 --- a/tests/unit/test_flows.py +++ b/tests/unit/test_flows.py @@ -16,6 +16,7 @@ FlowMetricsApiResponse, FlowResponse, ) +from nexla_sdk.models.metrics.enums import ResourceType from tests.utils.assertions import NexlaAssertions from tests.utils.fixtures import MockHTTPClient from tests.utils.mock_builders import MockDataFactory, MockResponseBuilder @@ -48,6 +49,11 @@ def test_flow_logs_response_model(self): assert response.status == 200 assert response.message == "Ok" assert len(response.logs) == 3 + assert response.meta.total_count == 3 + assert response.meta.page_count == 1 + assert response.logs[0].log == response_data["logs"]["data"][0]["log"] + assert response.logs[0].message == response.logs[0].log + assert response.logs[0].level == response.logs[0].severity def test_flow_metrics_api_response_model(self): """Test FlowMetricsApiResponse model.""" @@ -394,6 +400,53 @@ def test_pause_by_resource(self, mock_client, mock_http_client, mock_factory): assert last_request["method"] == "PUT" assert f"/{resource_type}/{resource_id}/pause" in last_request["url"] + def test_get_run_status_uses_flow_id_path(self, mock_client, mock_http_client): + """Test run status is keyed by flow ID.""" + mock_http_client.add_response("/flows/599305/run_status/123", {"status": "ok"}) + + result = mock_client.flows.get_run_status(599305, 123) + + assert result["status"] == "ok" + last_request = mock_http_client.get_last_request() + assert "/flows/599305/run_status/123" in last_request["url"] + + def test_flow_logs_and_metrics_accept_resource_type_enum( + self, mock_client, mock_http_client + ): + """Test flow log and metric helpers accept ResourceType enum members.""" + mock_http_client.add_response( + "/data_sets/5061/flow/logs", + MockResponseBuilder.flow_logs_response(log_count=1), + ) + + logs = mock_client.flows.get_logs( + ResourceType.DATA_SETS, + 5061, + run_id=100, + from_ts=1704067200, + ) + + assert isinstance(logs, FlowLogsResponse) + last_request = mock_http_client.get_last_request() + assert "/data_sets/5061/flow/logs" in last_request["url"] + + mock_http_client.clear_requests() + mock_http_client.clear_responses() + mock_http_client.add_response( + "/data_sinks/5029/flow/metrics", + MockResponseBuilder.flow_metrics_api_response(), + ) + + metrics = mock_client.flows.get_metrics( + ResourceType.DATA_SINKS, + 5029, + from_date="2024-01-01", + ) + + assert isinstance(metrics, FlowMetricsApiResponse) + last_request = mock_http_client.get_last_request() + assert "/data_sinks/5029/flow/metrics" in last_request["url"] + def test_flow_with_metrics(self, mock_client, mock_http_client, mock_factory): """Test flow response with metrics.""" # Arrange @@ -513,7 +566,7 @@ def test_get_logs_success(self, mock_client, mock_http_client): from_ts = 1704067200 mock_response = MockResponseBuilder.flow_logs_response(log_count=3) mock_http_client.add_response( - f"/data_flows/{resource_type}/{resource_id}/logs", mock_response + f"/{resource_type}/{resource_id}/flow/logs", mock_response ) # Act @@ -529,11 +582,12 @@ def test_get_logs_success(self, mock_client, mock_http_client): assert result.status == 200 assert result.message == "Ok" assert len(result.logs) == 3 + assert result.meta.total_count == 3 # Verify request last_request = mock_http_client.get_last_request() assert last_request["method"] == "GET" - assert f"/data_flows/{resource_type}/{resource_id}/logs" in last_request["url"] + assert f"/{resource_type}/{resource_id}/flow/logs" in last_request["url"] assert last_request["params"]["run_id"] == run_id assert last_request["params"]["from"] == from_ts @@ -541,7 +595,7 @@ def test_get_logs_with_pagination(self, mock_client, mock_http_client): """Test get_logs with pagination parameters.""" # Arrange mock_response = MockResponseBuilder.flow_logs_response() - mock_http_client.add_response("/data_flows/data_sets/5061/logs", mock_response) + mock_http_client.add_response("/data_sets/5061/flow/logs", mock_response) # Act mock_client.flows.get_logs( @@ -562,7 +616,7 @@ def test_get_logs_all_parameters(self, mock_client, mock_http_client): """Test get_logs with all parameters.""" # Arrange mock_response = MockResponseBuilder.flow_logs_response() - mock_http_client.add_response("/data_flows/data_sinks/5029/logs", mock_response) + mock_http_client.add_response("/data_sinks/5029/flow/logs", mock_response) # Act mock_client.flows.get_logs( @@ -591,7 +645,7 @@ def test_get_metrics_success(self, mock_client, mock_http_client): from_date = "2024-01-01" mock_response = MockResponseBuilder.flow_metrics_api_response() mock_http_client.add_response( - f"/data_flows/{resource_type}/{resource_id}/metrics", mock_response + f"/{resource_type}/{resource_id}/flow/metrics", mock_response ) # Act @@ -608,18 +662,14 @@ def test_get_metrics_success(self, mock_client, mock_http_client): # Verify request last_request = mock_http_client.get_last_request() assert last_request["method"] == "GET" - assert ( - f"/data_flows/{resource_type}/{resource_id}/metrics" in last_request["url"] - ) + assert f"/{resource_type}/{resource_id}/flow/metrics" in last_request["url"] assert last_request["params"]["from"] == from_date def test_get_metrics_with_groupby(self, mock_client, mock_http_client): """Test get_metrics with groupby parameter.""" # Arrange mock_response = MockResponseBuilder.flow_metrics_api_response() - mock_http_client.add_response( - "/data_flows/data_sets/5061/metrics", mock_response - ) + mock_http_client.add_response("/data_sets/5061/flow/metrics", mock_response) # Act mock_client.flows.get_metrics( @@ -637,9 +687,7 @@ def test_get_metrics_with_orderby(self, mock_client, mock_http_client): """Test get_metrics with orderby parameter.""" # Arrange mock_response = MockResponseBuilder.flow_metrics_api_response() - mock_http_client.add_response( - "/data_flows/data_sets/5061/metrics", mock_response - ) + mock_http_client.add_response("/data_sets/5061/flow/metrics", mock_response) # Act mock_client.flows.get_metrics( @@ -657,9 +705,7 @@ def test_get_metrics_all_parameters(self, mock_client, mock_http_client): """Test get_metrics with all parameters.""" # Arrange mock_response = MockResponseBuilder.flow_metrics_api_response() - mock_http_client.add_response( - "/data_flows/data_sinks/5029/metrics", mock_response - ) + mock_http_client.add_response("/data_sinks/5029/flow/metrics", mock_response) # Act mock_client.flows.get_metrics( @@ -758,9 +804,7 @@ def test_copy_and_replace_credentials_source_and_sink( f"/data_sources/{copied_source_id}", updated_source ) mock_http_client.add_response(f"/data_sinks/{copied_sink_id}", updated_sink) - mock_http_client.add_response( - f"/flows/{origin_node_id}", refetch_response - ) + mock_http_client.add_response(f"/flows/{origin_node_id}", refetch_response) # Act result = mock_client.flows.copy_and_replace_credentials( @@ -870,12 +914,8 @@ def test_copy_and_replace_credentials_partial_mapping( mock_http_client.add_response( f"/data_sources/{copied_source_id}", updated_source ) - mock_http_client.add_response( - f"/data_sinks/{copied_sink_a_id}", updated_sink_a - ) - mock_http_client.add_response( - f"/flows/{origin_node_id}", refetch_response - ) + mock_http_client.add_response(f"/data_sinks/{copied_sink_a_id}", updated_sink_a) + mock_http_client.add_response(f"/flows/{origin_node_id}", refetch_response) # Act — only map source and sink A, leave sink B untouched result = mock_client.flows.copy_and_replace_credentials( @@ -913,9 +953,7 @@ def test_copy_and_replace_credentials_preserves_copy_options( refetch_response = copy_response.copy() mock_http_client.add_response("/flows/100/copy", copy_response) - mock_http_client.add_response( - f"/flows/{origin_node_id}", refetch_response - ) + mock_http_client.add_response(f"/flows/{origin_node_id}", refetch_response) # Act — pass copy_options with reuse_data_credentials=False (should be overridden) result = mock_client.flows.copy_and_replace_credentials( @@ -963,9 +1001,7 @@ def test_copy_and_replace_credentials_empty_mapping( refetch_response = copy_response.copy() mock_http_client.add_response("/flows/100/copy", copy_response) - mock_http_client.add_response( - f"/flows/{origin_node_id}", refetch_response - ) + mock_http_client.add_response(f"/flows/{origin_node_id}", refetch_response) # Act result = mock_client.flows.copy_and_replace_credentials( @@ -1033,9 +1069,7 @@ def test_copy_and_replace_credentials_with_target_project( mock_http_client.add_response( f"/projects/{target_project_id}/flows", add_flows_response ) - mock_http_client.add_response( - f"/flows/{origin_node_id}", refetch_response - ) + mock_http_client.add_response(f"/flows/{origin_node_id}", refetch_response) # Act result = mock_client.flows.copy_and_replace_credentials( @@ -1071,9 +1105,7 @@ def test_copy_and_replace_credentials_no_target_project( refetch_response = copy_response.copy() mock_http_client.add_response("/flows/100/copy", copy_response) - mock_http_client.add_response( - f"/flows/{origin_node_id}", refetch_response - ) + mock_http_client.add_response(f"/flows/{origin_node_id}", refetch_response) # Act — no target_project_id result = mock_client.flows.copy_and_replace_credentials( diff --git a/tests/unit/test_metrics.py b/tests/unit/test_metrics.py index 9595afb..faf3396 100644 --- a/tests/unit/test_metrics.py +++ b/tests/unit/test_metrics.py @@ -1,7 +1,7 @@ import pytest from nexla_sdk import NexlaClient -from nexla_sdk.models.metrics.enums import ResourceType +from nexla_sdk.models.metrics.enums import ResourceType, UserMetricResourceType from nexla_sdk.models.metrics.responses import MetricsByRunResponse, MetricsResponse pytestmark = pytest.mark.unit @@ -18,7 +18,7 @@ def test_resource_metrics_rate_limits_and_flow_helpers( ): mock_http_client.queue_response({"status": 200, "metrics": []}) m = client.metrics.get_resource_daily_metrics( - ResourceType.DATA_SOURCES.value, + ResourceType.DATA_SOURCES, 42, from_date="2024-01-01", to_date="2024-01-31", @@ -30,7 +30,7 @@ def test_resource_metrics_rate_limits_and_flow_helpers( {"status": 200, "metrics": {"data": [], "meta": {}}} ) br = client.metrics.get_resource_metrics_by_run( - ResourceType.DATA_SOURCES.value, + ResourceType.DATA_SOURCES, 42, groupby="runId", orderby="lastWritten", @@ -48,9 +48,7 @@ def test_resource_metrics_rate_limits_and_flow_helpers( assert "rate_limit" in rl mock_http_client.clear_responses() - mock_http_client.add_response( - "/data_flows/data_sources/1/metrics", {"status": "ok"} - ) + mock_http_client.add_response("/data_sources/1/flow/metrics", {"status": "ok"}) fm = client.metrics.get_flow_metrics( "data_sources", 1, @@ -64,9 +62,7 @@ def test_resource_metrics_rate_limits_and_flow_helpers( assert fm.get("status") == "ok" mock_http_client.clear_responses() - mock_http_client.add_response( - "/data_flows/data_sources/1/logs", {"status": "ok"} - ) + mock_http_client.add_response("/data_sources/1/flow/logs", {"status": "ok"}) fl = client.metrics.get_flow_logs( "data_sources", 1, @@ -77,3 +73,76 @@ def test_resource_metrics_rate_limits_and_flow_helpers( per_page=100, ) assert fl.get("status") == "ok" + + def test_resource_flow_metrics_accepts_canonical_resource_type( + self, client, mock_http_client + ): + mock_http_client.add_response("/data_sources/42/flow", {"status": "ok"}) + + metrics = client.metrics.get_resource_flow_metrics("data_sources", 42) + + assert metrics["status"] == "ok" + mock_http_client.assert_request_made("GET", "/data_sources/42/flow") + + mock_http_client.clear_requests() + mock_http_client.clear_responses() + mock_http_client.add_response("/data_sets/43/flow/records", {"status": "ok"}) + + metrics = client.metrics.get_resource_flow_metrics( + ResourceType.DATA_SETS, 43, metric_type="records" + ) + + assert metrics["status"] == "ok" + mock_http_client.assert_request_made("GET", "/data_sets/43/flow/records") + + def test_resource_flow_metrics_rejects_singular_resource_type( + self, client, mock_http_client + ): + with pytest.raises(ValueError, match="'data_set' is not a valid ResourceType"): + client.metrics.get_resource_flow_metrics("data_set", 43) + + assert mock_http_client.requests == [] + + def test_flow_helpers_accept_resource_type_enum(self, client, mock_http_client): + mock_http_client.add_response("/data_sinks/44/flow/metrics", {"status": "ok"}) + + metrics = client.metrics.get_flow_metrics( + ResourceType.DATA_SINKS, + 44, + from_date="2024-01-01", + ) + + assert metrics["status"] == "ok" + mock_http_client.assert_request_made("GET", "/data_sinks/44/flow/metrics") + + mock_http_client.clear_requests() + mock_http_client.clear_responses() + mock_http_client.add_response("/data_sources/45/flow/logs", {"status": "ok"}) + + logs = client.metrics.get_flow_logs( + ResourceType.DATA_SOURCES, + 45, + run_id=123, + from_ts=1000, + ) + + assert logs["status"] == "ok" + mock_http_client.assert_request_made("GET", "/data_sources/45/flow/logs") + + def test_user_daily_metrics_serializes_resource_type_enum( + self, client, mock_http_client + ): + mock_http_client.add_response("/users/7/metrics", {"status": "ok"}) + + metrics = client.users.get_daily_metrics( + 7, + UserMetricResourceType.SOURCE, + from_date="2024-01-01", + ) + + assert metrics["status"] == "ok" + mock_http_client.assert_request_made( + "GET", + "/users/7/metrics", + params={"resource_type": "SOURCE", "from": "2024-01-01", "aggregate": 1}, + ) diff --git a/tests/unit/test_organizations.py b/tests/unit/test_organizations.py index 8681455..68ab035 100644 --- a/tests/unit/test_organizations.py +++ b/tests/unit/test_organizations.py @@ -1,5 +1,6 @@ """Unit tests for the Organizations resource.""" +from nexla_sdk.models.metrics.enums import ResourceType from nexla_sdk.models.organizations.requests import ( OrganizationCreate, OrgMemberActivateDeactivateRequest, @@ -272,3 +273,21 @@ def test_get_audit_log(self, mock_client): assert last_request["method"] == "GET" assert f"/orgs/{org_id}/audit_log" in last_request["url"] assert last_request["params"] == {"per_page": 10} + + def test_get_resource_audit_log(self, mock_client): + """Test getting audit logs for a canonical resource type.""" + org_id = 123 + mock_log = [MockResponseBuilder.audit_log_entry()] + mock_client.http_client.add_response( + f"/orgs/{org_id}/data_sources/audit_log", mock_log + ) + + audit_log = mock_client.organizations.get_resource_audit_log( + org_id, ResourceType.DATA_SOURCES, per_page=10 + ) + + assert len(audit_log) == 1 + last_request = mock_client.http_client.get_last_request() + assert last_request["method"] == "GET" + assert f"/orgs/{org_id}/data_sources/audit_log" in last_request["url"] + assert last_request["params"] == {"per_page": 10} diff --git a/tests/utils/mock_builders.py b/tests/utils/mock_builders.py index 3c52211..d233db0 100644 --- a/tests/utils/mock_builders.py +++ b/tests/utils/mock_builders.py @@ -501,15 +501,12 @@ def webhook_send_response( def flow_log_entry(**overrides) -> Dict[str, Any]: """Build a mock flow log entry.""" base = { - "timestamp": fake.date_time(tzinfo=timezone.utc).isoformat(), - "level": fake.random_element(["DEBUG", "INFO", "WARN", "ERROR"]), - "message": fake.sentence(), + "log": fake.sentence(), + "log_type": fake.random_element(["LOG", "EVENT"]), + "severity": fake.random_element(["DEBUG", "INFO", "WARN", "ERROR"]), "resource_id": fake.random_int(1, 10000), - "resource_type": fake.random_element( - ["data_sources", "data_sets", "data_sinks"] - ), - "run_id": fake.random_int(1, 10000), - "details": {"records": fake.random_int(0, 1000)}, + "resource_type": fake.random_element(["SOURCE", "DATASET", "SINK"]), + "timestamp": fake.random_int(1700000000000, 1800000000000), } base.update(overrides) return base @@ -517,11 +514,18 @@ def flow_log_entry(**overrides) -> Dict[str, Any]: @staticmethod def flow_logs_response(log_count: int = 3, **overrides) -> Dict[str, Any]: """Build a mock flow logs response.""" + logs = [MockResponseBuilder.flow_log_entry() for _ in range(log_count)] base = { "status": 200, "message": "Ok", - "logs": [MockResponseBuilder.flow_log_entry() for _ in range(log_count)], - "meta": {"currentPage": 1, "pageCount": 1, "totalCount": log_count}, + "logs": { + "data": logs, + "meta": { + "current_page": 1, + "pages_count": 1, + "total_count": log_count, + }, + }, } base.update(overrides) return base From 240bc6dc10dc9c37eb8b8d87490d6e889bfc2f52 Mon Sep 17 00:00:00 2001 From: Abhijit Bharadwaj Date: Tue, 5 May 2026 00:57:53 -0700 Subject: [PATCH 2/3] fixes based on review comments --- docs-site/scripts/gen_api_docs.py | 21 ++++++----- nexla_sdk/models/flows/responses.py | 26 ++++++++++---- nexla_sdk/resources/base_resource.py | 17 +++++++++ nexla_sdk/resources/flows.py | 33 ++++++++++++++---- nexla_sdk/resources/metrics.py | 10 +++--- nexla_sdk/resources/organizations.py | 2 +- nexla_sdk/resources/users.py | 4 ++- tests/unit/test_flows.py | 52 ++++++++++++++++++++++++++++ tests/unit/test_metrics.py | 2 +- tests/utils/mock_builders.py | 2 ++ 10 files changed, 139 insertions(+), 30 deletions(-) diff --git a/docs-site/scripts/gen_api_docs.py b/docs-site/scripts/gen_api_docs.py index 550a8e3..bdf60ba 100644 --- a/docs-site/scripts/gen_api_docs.py +++ b/docs-site/scripts/gen_api_docs.py @@ -116,6 +116,11 @@ def format_signature(obj) -> str: return "()" +def mdx_text(text: str) -> str: + """Escape generated prose so Python examples are treated as MDX text.""" + return text.replace("{", "\\{").replace("}", "\\}") + + def write_module_page( module_name: str, mod, coverage: Dict[str, Any], gaps: List[str] ) -> None: @@ -150,7 +155,7 @@ def write_module_page( mdoc = inspect.getdoc(mod) or "" if mdoc: - f.write(mdoc + "\n\n") + f.write(mdx_text(mdoc) + "\n\n") if classes: f.write("## Classes\n\n") @@ -162,13 +167,13 @@ def write_module_page( f.write(f"Defined in `{cfile}:{cline}`\n\n") TRACE[module_name]["classes"][cname] = f"{cfile}:{cline}" if cdoc: - f.write(cdoc + "\n\n") + f.write(mdx_text(cdoc) + "\n\n") # Pydantic fields fields = pydantic_fields(cls) if fields: f.write("Fields:\n\n") for n, t, d in fields: - dd = f" — {d}" if d else "" + dd = f" — {mdx_text(d)}" if d else "" f.write(f"- `{n}`: `{t}`{dd}\n") f.write("\n") # Enum members @@ -194,11 +199,11 @@ def write_module_page( f.write(f"- `{n}{sig}`\n") if mfile and mline: f.write(f" - Source: `{mfile}:{mline}`\n") - TRACE[module_name]["classes"][ - f"{cname}.{n}" - ] = f"{mfile}:{mline}" + TRACE[module_name]["classes"][f"{cname}.{n}"] = ( + f"{mfile}:{mline}" + ) if mdoc: - f.write(f" - {mdoc.splitlines()[0]}\n") + f.write(f" - {mdx_text(mdoc.splitlines()[0])}\n") f.write("\n") documented += 1 @@ -213,7 +218,7 @@ def write_module_page( f.write(f"Source: `{ffile}:{fline}`\n\n") TRACE[module_name]["functions"][fname] = f"{ffile}:{fline}" if fdoc: - f.write(fdoc + "\n\n") + f.write(mdx_text(fdoc) + "\n\n") documented += 1 # TODO marker if no symbols found diff --git a/nexla_sdk/models/flows/responses.py b/nexla_sdk/models/flows/responses.py index d7c72d1..f7819a5 100644 --- a/nexla_sdk/models/flows/responses.py +++ b/nexla_sdk/models/flows/responses.py @@ -1,7 +1,7 @@ -from datetime import datetime +from datetime import datetime, timezone from typing import Any, Dict, List, Optional -from pydantic import AliasChoices, Field, model_validator +from pydantic import AliasChoices, Field, field_validator, model_validator from nexla_sdk.models.base import BaseModel from nexla_sdk.models.common import FlowNode @@ -36,6 +36,14 @@ class FlowLogEntry(BaseModel): run_id: Optional[int] = None details: Optional[Dict[str, Any]] = None + @field_validator("timestamp", mode="before") + @classmethod + def coerce_ms_timestamp(cls, value): + """Convert live API millisecond timestamps to datetimes explicitly.""" + if isinstance(value, (int, float)) and abs(value) > 1e10: + return datetime.fromtimestamp(value / 1000, tz=timezone.utc) + return value + @model_validator(mode="before") @classmethod def normalize_live_log_fields(cls, data): @@ -52,7 +60,7 @@ def normalize_live_log_fields(cls, data): class FlowLogsMeta(BaseModel): - """Metadata for flow logs pagination.""" + """Metadata for flow logs pagination and live run context.""" current_page: Optional[int] = Field( default=None, @@ -61,7 +69,11 @@ class FlowLogsMeta(BaseModel): ) page_count: Optional[int] = Field( default=None, - validation_alias=AliasChoices("pageCount", "page_count", "pages_count"), + validation_alias=AliasChoices( + "pageCount", + "page_count", + "pages_count", # live API uses this spelling in logs.meta + ), serialization_alias="pageCount", ) total_count: Optional[int] = Field( @@ -69,8 +81,8 @@ class FlowLogsMeta(BaseModel): validation_alias=AliasChoices("totalCount", "total_count"), serialization_alias="totalCount", ) - org_id: Optional[int] = None - run_id: Optional[int] = None + org_id: Optional[int] = None # present in live API logs.meta + run_id: Optional[int] = None # present in live API logs.meta class FlowLogsResponse(BaseModel): @@ -98,7 +110,7 @@ def normalize_live_logs_shape(cls, data): logs = data["logs"] normalized = data.copy() normalized["logs"] = logs.get("data") or [] - if normalized.get("meta") is None: + if normalized.get("meta") is None: # outer meta wins if already set normalized["meta"] = logs.get("meta") return normalized diff --git a/nexla_sdk/resources/base_resource.py b/nexla_sdk/resources/base_resource.py index 228c097..c1df5de 100644 --- a/nexla_sdk/resources/base_resource.py +++ b/nexla_sdk/resources/base_resource.py @@ -1,3 +1,4 @@ +from enum import Enum from typing import Any, Dict, List, Optional, Type, TypeVar, Union from nexla_sdk.exceptions import NexlaError @@ -6,6 +7,7 @@ AccessorResponse, AccessorResponseList, ) +from nexla_sdk.models.metrics.enums import ResourceType from nexla_sdk.utils.pagination import Paginator T = TypeVar("T") @@ -25,6 +27,21 @@ def __init__(self, client): self._path = "" # Override in subclasses self._model_class = None # Override in subclasses + @staticmethod + def _resolve_enum_value(enum_cls: Type[Enum], value: Any, param_name: str) -> str: + """Resolve an enum member or exact enum value string to the API value.""" + try: + return enum_cls(value).value + except ValueError: + valid = ", ".join(repr(member.value) for member in enum_cls) + raise ValueError( + f"Invalid {param_name} {value!r}. Must be one of: {valid}" + ) from None + + def _resolve_resource_type(self, resource_type: Union[ResourceType, str]) -> str: + """Resolve a ResourceType or exact resource type string to the API path value.""" + return self._resolve_enum_value(ResourceType, resource_type, "resource_type") + def _make_request( self, method: str, diff --git a/nexla_sdk/resources/flows.py b/nexla_sdk/resources/flows.py index 1ee8eac..8791584 100644 --- a/nexla_sdk/resources/flows.py +++ b/nexla_sdk/resources/flows.py @@ -101,7 +101,7 @@ def get_by_resource( Returns: Flow response """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"/{resource_type_value}/{resource_id}/flow" params = {"flows_only": 1} if flows_only else {} @@ -299,7 +299,7 @@ def delete_by_resource( Returns: Response status """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"/{resource_type_value}/{resource_id}/flow" return self._make_request("DELETE", path) @@ -322,7 +322,7 @@ def activate_by_resource( Returns: Activated flow """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"/{resource_type_value}/{resource_id}/activate" params = {} if all: @@ -352,7 +352,7 @@ def pause_by_resource( Returns: Paused flow """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"/{resource_type_value}/{resource_id}/pause" params = {} if all: @@ -484,7 +484,13 @@ def get_active_flows_metrics( params["org_id"] = org_id return self._make_request("GET", path, params=params) - def get_run_status(self, flow_id: int, run_id: int) -> Dict[str, Any]: + def get_run_status( + self, + flow_id: Optional[int] = None, + run_id: Optional[int] = None, + *deprecated_args: Any, + **deprecated_kwargs: Any, + ) -> Dict[str, Any]: """ Get status of a specific flow run. @@ -495,6 +501,19 @@ def get_run_status(self, flow_id: int, run_id: int) -> Dict[str, Any]: Returns: Run status information """ + if ( + deprecated_args + or deprecated_kwargs + or isinstance(flow_id, (ResourceType, str)) + ): + raise DeprecationWarning( + "get_run_status(resource_type, resource_id, run_id) is no longer " + "supported. Use get_run_status(flow_id, run_id), which calls " + "/flows/{flow_id}/run_status/{run_id}." + ) + if flow_id is None or run_id is None: + raise TypeError("get_run_status() requires flow_id and run_id") + path = f"{self._path}/{flow_id}/run_status/{run_id}" return self._make_request("GET", path) @@ -524,7 +543,7 @@ def get_logs( FlowLogsResponse with log entries and pagination metadata, or raw dict if response doesn't match expected schema. """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"/{resource_type_value}/{resource_id}/flow/logs" params = { "run_id": run_id, @@ -570,7 +589,7 @@ def get_metrics( FlowMetricsApiResponse with metrics data and pagination, or raw dict if response doesn't match expected schema. """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"/{resource_type_value}/{resource_id}/flow/metrics" params = {"from": from_date} if to_date: diff --git a/nexla_sdk/resources/metrics.py b/nexla_sdk/resources/metrics.py index 217875b..31fa8cc 100644 --- a/nexla_sdk/resources/metrics.py +++ b/nexla_sdk/resources/metrics.py @@ -38,7 +38,7 @@ def get_resource_daily_metrics( Returns: Daily metrics """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"/{resource_type_value}/{resource_id}/metrics" params = {"from": from_date, "aggregate": 1} if to_date: @@ -71,7 +71,7 @@ def get_resource_metrics_by_run( Returns: Metrics by run """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"/{resource_type_value}/{resource_id}/metrics/run_summary" params = {} if groupby: @@ -114,7 +114,7 @@ def get_resource_flow_metrics( Returns: Flow metrics for the resource """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) if metric_type: path = f"/{resource_type_value}/{resource_id}/flow/{metric_type}" else: @@ -163,7 +163,7 @@ def get_flow_metrics( Returns: Flow metrics for the resource """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"/{resource_type_value}/{resource_id}/flow/metrics" params = {"from": from_date} if to_date: @@ -204,7 +204,7 @@ def get_flow_logs( Returns: Flow logs for the resource run """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"/{resource_type_value}/{resource_id}/flow/logs" params = {"run_id": run_id, "from": from_ts} if to_ts is not None: diff --git a/nexla_sdk/resources/organizations.py b/nexla_sdk/resources/organizations.py index 19935c1..a8af4b9 100644 --- a/nexla_sdk/resources/organizations.py +++ b/nexla_sdk/resources/organizations.py @@ -306,7 +306,7 @@ def get_resource_audit_log( Returns: List of audit log entries """ - resource_type_value = ResourceType(resource_type).value + resource_type_value = self._resolve_resource_type(resource_type) path = f"{self._path}/{org_id}/{resource_type_value}/audit_log" response = self._make_request("GET", path, params=params) return [LogEntry.model_validate(item) for item in response] diff --git a/nexla_sdk/resources/users.py b/nexla_sdk/resources/users.py index 96e266f..3456915 100644 --- a/nexla_sdk/resources/users.py +++ b/nexla_sdk/resources/users.py @@ -358,7 +358,9 @@ def get_daily_metrics( Returns: Daily metrics data """ - resource_type_value = UserMetricResourceType(resource_type).value + resource_type_value = self._resolve_enum_value( + UserMetricResourceType, resource_type, "resource_type" + ) path = f"{self._path}/{user_id}/metrics" params = { "resource_type": resource_type_value, diff --git a/tests/unit/test_flows.py b/tests/unit/test_flows.py index 038f0ea..db37e3b 100644 --- a/tests/unit/test_flows.py +++ b/tests/unit/test_flows.py @@ -1,5 +1,6 @@ """Unit tests for flows resource.""" +from datetime import datetime, timezone from unittest.mock import patch import pytest @@ -51,9 +52,15 @@ def test_flow_logs_response_model(self): assert len(response.logs) == 3 assert response.meta.total_count == 3 assert response.meta.page_count == 1 + assert response.meta.org_id == response_data["logs"]["meta"]["org_id"] + assert response.meta.run_id == response_data["logs"]["meta"]["run_id"] assert response.logs[0].log == response_data["logs"]["data"][0]["log"] assert response.logs[0].message == response.logs[0].log assert response.logs[0].level == response.logs[0].severity + raw_timestamp = response_data["logs"]["data"][0]["timestamp"] + assert response.logs[0].timestamp == datetime.fromtimestamp( + raw_timestamp / 1000, tz=timezone.utc + ) def test_flow_metrics_api_response_model(self): """Test FlowMetricsApiResponse model.""" @@ -410,6 +417,15 @@ def test_get_run_status_uses_flow_id_path(self, mock_client, mock_http_client): last_request = mock_http_client.get_last_request() assert "/flows/599305/run_status/123" in last_request["url"] + def test_get_run_status_rejects_deprecated_resource_signature( + self, mock_client, mock_http_client + ): + """Test run status fails clearly for the old resource-based signature.""" + with pytest.raises(DeprecationWarning, match="get_run_status\\(resource_type"): + mock_client.flows.get_run_status("data_sources", 5023, 123) + + assert mock_http_client.requests == [] + def test_flow_logs_and_metrics_accept_resource_type_enum( self, mock_client, mock_http_client ): @@ -447,6 +463,42 @@ def test_flow_logs_and_metrics_accept_resource_type_enum( last_request = mock_http_client.get_last_request() assert "/data_sinks/5029/flow/metrics" in last_request["url"] + @pytest.mark.parametrize( + "call", + [ + pytest.param( + lambda flows: flows.get_by_resource("data_source", 1), + id="get_by_resource", + ), + pytest.param( + lambda flows: flows.activate_by_resource("data_source", 1), + id="activate_by_resource", + ), + pytest.param( + lambda flows: flows.pause_by_resource("data_source", 1), + id="pause_by_resource", + ), + pytest.param( + lambda flows: flows.get_logs("data_source", 1, run_id=1, from_ts=0), + id="get_logs", + ), + pytest.param( + lambda flows: flows.get_metrics( + "data_source", 1, from_date="2024-01-01" + ), + id="get_metrics", + ), + ], + ) + def test_flow_resource_helpers_reject_invalid_resource_type( + self, mock_client, mock_http_client, call + ): + """Test flow resource helpers reject singular resource type strings.""" + with pytest.raises(ValueError, match="Invalid resource_type 'data_source'"): + call(mock_client.flows) + + assert mock_http_client.requests == [] + def test_flow_with_metrics(self, mock_client, mock_http_client, mock_factory): """Test flow response with metrics.""" # Arrange diff --git a/tests/unit/test_metrics.py b/tests/unit/test_metrics.py index faf3396..905f167 100644 --- a/tests/unit/test_metrics.py +++ b/tests/unit/test_metrics.py @@ -98,7 +98,7 @@ def test_resource_flow_metrics_accepts_canonical_resource_type( def test_resource_flow_metrics_rejects_singular_resource_type( self, client, mock_http_client ): - with pytest.raises(ValueError, match="'data_set' is not a valid ResourceType"): + with pytest.raises(ValueError, match="Invalid resource_type 'data_set'"): client.metrics.get_resource_flow_metrics("data_set", 43) assert mock_http_client.requests == [] diff --git a/tests/utils/mock_builders.py b/tests/utils/mock_builders.py index d233db0..bff6a17 100644 --- a/tests/utils/mock_builders.py +++ b/tests/utils/mock_builders.py @@ -521,6 +521,8 @@ def flow_logs_response(log_count: int = 3, **overrides) -> Dict[str, Any]: "logs": { "data": logs, "meta": { + "org_id": fake.random_int(1, 10000), + "run_id": fake.random_int(1, 10000), "current_page": 1, "pages_count": 1, "total_count": log_count, From c4e72d19f03b598574ce354ab8f85429a3b51870 Mon Sep 17 00:00:00 2001 From: Abhijit Bharadwaj Date: Tue, 5 May 2026 13:57:06 -0700 Subject: [PATCH 3/3] Fix flow run status and metrics response models --- docs-site/REPORT.md | 3981 +++++++++-------- docs-site/docs/api/python/modules-index.md | 4 + .../api/python/modules/nexla_sdk.auth.mdx | 18 +- .../api/python/modules/nexla_sdk.client.mdx | 21 +- .../python/modules/nexla_sdk.exceptions.mdx | 42 +- .../python/modules/nexla_sdk.http_client.mdx | 16 +- .../docs/api/python/modules/nexla_sdk.mdx | 1248 +++--- .../modules/nexla_sdk.models.access.mdx | 84 +- .../nexla_sdk.models.access.requests.mdx | 38 +- .../nexla_sdk.models.access.responses.mdx | 46 +- .../nexla_sdk.models.approval_requests.mdx | 18 +- ..._sdk.models.approval_requests.requests.mdx | 2 +- ...sdk.models.approval_requests.responses.mdx | 16 +- .../modules/nexla_sdk.models.async_tasks.mdx | 26 +- .../nexla_sdk.models.async_tasks.requests.mdx | 4 +- ...nexla_sdk.models.async_tasks.responses.mdx | 22 +- .../nexla_sdk.models.attribute_transforms.mdx | 72 +- ...k.models.attribute_transforms.requests.mdx | 32 +- ....models.attribute_transforms.responses.mdx | 40 +- .../python/modules/nexla_sdk.models.base.mdx | 6 +- .../nexla_sdk.models.code_containers.mdx | 90 +- ...la_sdk.models.code_containers.requests.mdx | 46 +- ...a_sdk.models.code_containers.responses.mdx | 48 +- .../modules/nexla_sdk.models.common.mdx | 66 +- .../nexla_sdk.models.credentials.enums.mdx | 2 +- .../modules/nexla_sdk.models.credentials.mdx | 80 +- .../nexla_sdk.models.credentials.requests.mdx | 32 +- ...nexla_sdk.models.credentials.responses.mdx | 46 +- .../modules/nexla_sdk.models.data_schemas.mdx | 2 +- ...exla_sdk.models.data_schemas.responses.mdx | 2 +- .../nexla_sdk.models.destinations.enums.mdx | 33 +- .../modules/nexla_sdk.models.destinations.mdx | 131 +- ...nexla_sdk.models.destinations.requests.mdx | 28 +- ...exla_sdk.models.destinations.responses.mdx | 70 +- .../nexla_sdk.models.doc_containers.mdx | 2 +- ...la_sdk.models.doc_containers.responses.mdx | 2 +- .../python/modules/nexla_sdk.models.enums.mdx | 16 +- .../python/modules/nexla_sdk.models.flows.mdx | 173 +- .../nexla_sdk.models.flows.requests.mdx | 6 +- .../nexla_sdk.models.flows.responses.mdx | 167 +- .../python/modules/nexla_sdk.models.genai.mdx | 44 +- .../nexla_sdk.models.genai.requests.mdx | 18 +- .../nexla_sdk.models.genai.responses.mdx | 26 +- .../modules/nexla_sdk.models.lookups.mdx | 50 +- .../nexla_sdk.models.lookups.requests.mdx | 28 +- .../nexla_sdk.models.lookups.responses.mdx | 22 +- .../modules/nexla_sdk.models.marketplace.mdx | 48 +- .../nexla_sdk.models.marketplace.requests.mdx | 24 +- ...nexla_sdk.models.marketplace.responses.mdx | 24 +- .../api/python/modules/nexla_sdk.models.mdx | 2395 +++++----- .../nexla_sdk.models.metrics.enums.mdx | 2 +- .../modules/nexla_sdk.models.metrics.mdx | 51 +- .../nexla_sdk.models.metrics.responses.mdx | 51 +- .../nexla_sdk.models.nexsets.enums.mdx | 4 +- .../modules/nexla_sdk.models.nexsets.mdx | 104 +- .../nexla_sdk.models.nexsets.requests.mdx | 48 +- .../nexla_sdk.models.nexsets.responses.mdx | 52 +- .../nexla_sdk.models.notifications.mdx | 68 +- ...exla_sdk.models.notifications.requests.mdx | 40 +- ...xla_sdk.models.notifications.responses.mdx | 28 +- .../nexla_sdk.models.org_auth_configs.mdx | 102 +- ...a_sdk.models.org_auth_configs.requests.mdx | 48 +- ..._sdk.models.org_auth_configs.responses.mdx | 54 +- ...la_sdk.models.organizations.custodians.mdx | 8 +- .../nexla_sdk.models.organizations.mdx | 148 +- ...exla_sdk.models.organizations.requests.mdx | 72 +- ...xla_sdk.models.organizations.responses.mdx | 70 +- .../modules/nexla_sdk.models.projects.mdx | 64 +- .../nexla_sdk.models.projects.requests.mdx | 26 +- .../nexla_sdk.models.projects.responses.mdx | 38 +- .../modules/nexla_sdk.models.runtimes.mdx | 42 +- .../nexla_sdk.models.runtimes.requests.mdx | 24 +- .../nexla_sdk.models.runtimes.responses.mdx | 18 +- .../modules/nexla_sdk.models.self_signup.mdx | 12 +- ...nexla_sdk.models.self_signup.responses.mdx | 12 +- .../nexla_sdk.models.sources.enums.mdx | 8 +- .../modules/nexla_sdk.models.sources.mdx | 106 +- .../nexla_sdk.models.sources.requests.mdx | 30 +- .../nexla_sdk.models.sources.responses.mdx | 68 +- .../python/modules/nexla_sdk.models.teams.mdx | 38 +- .../nexla_sdk.models.teams.requests.mdx | 24 +- .../nexla_sdk.models.teams.responses.mdx | 14 +- .../modules/nexla_sdk.models.transforms.mdx | 82 +- .../nexla_sdk.models.transforms.requests.mdx | 38 +- .../nexla_sdk.models.transforms.responses.mdx | 44 +- .../python/modules/nexla_sdk.models.users.mdx | 102 +- .../nexla_sdk.models.users.requests.mdx | 38 +- .../nexla_sdk.models.users.responses.mdx | 64 +- .../modules/nexla_sdk.models.webhooks.mdx | 50 + .../nexla_sdk.models.webhooks.requests.mdx | 35 + .../nexla_sdk.models.webhooks.responses.mdx | 27 + .../nexla_sdk.resources.approval_requests.mdx | 10 +- .../nexla_sdk.resources.async_tasks.mdx | 26 +- ...xla_sdk.resources.attribute_transforms.mdx | 14 +- .../nexla_sdk.resources.base_resource.mdx | 32 +- .../nexla_sdk.resources.code_containers.mdx | 16 +- .../nexla_sdk.resources.credentials.mdx | 18 +- .../nexla_sdk.resources.data_schemas.mdx | 4 +- .../nexla_sdk.resources.destinations.mdx | 18 +- .../nexla_sdk.resources.doc_containers.mdx | 4 +- .../modules/nexla_sdk.resources.flows.mdx | 63 +- .../modules/nexla_sdk.resources.genai.mdx | 22 +- .../modules/nexla_sdk.resources.lookups.mdx | 18 +- .../nexla_sdk.resources.marketplace.mdx | 28 +- .../python/modules/nexla_sdk.resources.mdx | 1109 ++--- .../modules/nexla_sdk.resources.metrics.mdx | 28 +- .../modules/nexla_sdk.resources.nexsets.mdx | 22 +- .../nexla_sdk.resources.notifications.mdx | 44 +- .../nexla_sdk.resources.org_auth_configs.mdx | 14 +- .../nexla_sdk.resources.organizations.mdx | 55 +- .../modules/nexla_sdk.resources.projects.mdx | 28 +- .../modules/nexla_sdk.resources.runtimes.mdx | 16 +- .../nexla_sdk.resources.self_signup.mdx | 18 +- .../modules/nexla_sdk.resources.sources.mdx | 18 +- .../modules/nexla_sdk.resources.teams.mdx | 20 +- .../nexla_sdk.resources.transforms.mdx | 16 +- .../modules/nexla_sdk.resources.users.mdx | 45 +- .../modules/nexla_sdk.resources.webhooks.mdx | 54 + .../python/modules/nexla_sdk.telemetry.mdx | 4 +- docs-site/scripts/gen_api_docs.py | 26 +- nexla_sdk/models/__init__.py | 4 + nexla_sdk/models/flows/responses.py | 39 +- nexla_sdk/models/metrics/__init__.py | 4 + nexla_sdk/models/metrics/responses.py | 9 + nexla_sdk/resources/base_resource.py | 5 - nexla_sdk/resources/flows.py | 70 +- nexla_sdk/resources/metrics.py | 72 +- nexla_sdk/resources/organizations.py | 4 +- tests/unit/test_flows.py | 75 +- tests/unit/test_metrics.py | 55 +- tests/utils/mock_builders.py | 23 +- 131 files changed, 7398 insertions(+), 6163 deletions(-) create mode 100644 docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.mdx create mode 100644 docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.requests.mdx create mode 100644 docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.responses.mdx create mode 100644 docs-site/docs/api/python/modules/nexla_sdk.resources.webhooks.mdx diff --git a/docs-site/REPORT.md b/docs-site/REPORT.md index 5d11aec..a97daa6 100644 --- a/docs-site/REPORT.md +++ b/docs-site/REPORT.md @@ -1,8 +1,8 @@ # Documentation Report ## Coverage Summary -- Modules processed: 114 -- Symbols documented: 569 / 569 +- Modules processed: 118 +- Symbols documented: 605 / 605 ## Known Gaps (🚧 TODO) - None @@ -21,1005 +21,1051 @@ Each API page embeds per-symbol source links. Summary below. ### nexla_sdk - AccessRole: `nexla_sdk/models/enums.py:4` -- ApprovalRequestsResource: `nexla_sdk/resources/approval_requests.py:6` -- ApprovalRequestsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- ApprovalRequestsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- ApprovalRequestsResource.approve: `nexla_sdk/resources/approval_requests.py:24` -- ApprovalRequestsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- ApprovalRequestsResource.create: `nexla_sdk/resources/base_resource.py:199` -- ApprovalRequestsResource.delete: `nexla_sdk/resources/base_resource.py:236` -- ApprovalRequestsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- ApprovalRequestsResource.get: `nexla_sdk/resources/base_resource.py:175` -- ApprovalRequestsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- ApprovalRequestsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- ApprovalRequestsResource.list: `nexla_sdk/resources/base_resource.py:106` -- ApprovalRequestsResource.list_pending: `nexla_sdk/resources/approval_requests.py:14` -- ApprovalRequestsResource.list_requested: `nexla_sdk/resources/approval_requests.py:19` -- ApprovalRequestsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- ApprovalRequestsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- ApprovalRequestsResource.reject: `nexla_sdk/resources/approval_requests.py:29` -- ApprovalRequestsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- ApprovalRequestsResource.update: `nexla_sdk/resources/base_resource.py:220` -- AsyncTasksResource: `nexla_sdk/resources/async_tasks.py:7` -- AsyncTasksResource.acknowledge: `nexla_sdk/resources/async_tasks.py:72` -- AsyncTasksResource.activate: `nexla_sdk/resources/base_resource.py:249` -- AsyncTasksResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- AsyncTasksResource.copy: `nexla_sdk/resources/base_resource.py:277` -- AsyncTasksResource.create: `nexla_sdk/resources/async_tasks.py:20` -- AsyncTasksResource.delete: `nexla_sdk/resources/async_tasks.py:49` -- AsyncTasksResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- AsyncTasksResource.download_link: `nexla_sdk/resources/async_tasks.py:62` -- AsyncTasksResource.explain_arguments: `nexla_sdk/resources/async_tasks.py:40` -- AsyncTasksResource.get: `nexla_sdk/resources/async_tasks.py:44` -- AsyncTasksResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- AsyncTasksResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- AsyncTasksResource.list: `nexla_sdk/resources/async_tasks.py:15` -- AsyncTasksResource.list_by_status: `nexla_sdk/resources/async_tasks.py:31` -- AsyncTasksResource.list_of_type: `nexla_sdk/resources/async_tasks.py:26` -- AsyncTasksResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- AsyncTasksResource.pause: `nexla_sdk/resources/base_resource.py:263` -- AsyncTasksResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- AsyncTasksResource.rerun: `nexla_sdk/resources/async_tasks.py:53` -- AsyncTasksResource.result: `nexla_sdk/resources/async_tasks.py:58` -- AsyncTasksResource.types: `nexla_sdk/resources/async_tasks.py:36` -- AsyncTasksResource.update: `nexla_sdk/resources/base_resource.py:220` -- AttributeTransformsResource: `nexla_sdk/resources/attribute_transforms.py:9` -- AttributeTransformsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- AttributeTransformsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- AttributeTransformsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- AttributeTransformsResource.create: `nexla_sdk/resources/attribute_transforms.py:39` -- AttributeTransformsResource.delete: `nexla_sdk/resources/attribute_transforms.py:47` -- AttributeTransformsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- AttributeTransformsResource.get: `nexla_sdk/resources/attribute_transforms.py:35` -- AttributeTransformsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- AttributeTransformsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- AttributeTransformsResource.list: `nexla_sdk/resources/attribute_transforms.py:17` -- AttributeTransformsResource.list_public: `nexla_sdk/resources/attribute_transforms.py:51` -- AttributeTransformsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- AttributeTransformsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- AttributeTransformsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- AttributeTransformsResource.update: `nexla_sdk/resources/attribute_transforms.py:43` -- AuthenticationError: `nexla_sdk/exceptions.py:70` -- AuthenticationError.get_error_summary: `nexla_sdk/exceptions.py:54` -- AuthorizationError: `nexla_sdk/exceptions.py:80` -- AuthorizationError.get_error_summary: `nexla_sdk/exceptions.py:54` -- BaseModel: `nexla_sdk/models/base.py:8` -- BaseModel.to_dict: `nexla_sdk/models/base.py:40` -- BaseModel.to_json: `nexla_sdk/models/base.py:52` -- CodeContainersResource: `nexla_sdk/resources/code_containers.py:7` -- CodeContainersResource.activate: `nexla_sdk/resources/base_resource.py:249` -- CodeContainersResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- CodeContainersResource.copy: `nexla_sdk/resources/code_containers.py:61` -- CodeContainersResource.create: `nexla_sdk/resources/code_containers.py:41` -- CodeContainersResource.delete: `nexla_sdk/resources/code_containers.py:57` -- CodeContainersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- CodeContainersResource.get: `nexla_sdk/resources/code_containers.py:33` -- CodeContainersResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- CodeContainersResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- CodeContainersResource.list: `nexla_sdk/resources/code_containers.py:15` -- CodeContainersResource.list_public: `nexla_sdk/resources/code_containers.py:65` -- CodeContainersResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- CodeContainersResource.pause: `nexla_sdk/resources/base_resource.py:263` -- CodeContainersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- CodeContainersResource.update: `nexla_sdk/resources/code_containers.py:49` -- Connector: `nexla_sdk/models/common.py:31` -- Connector.to_dict: `nexla_sdk/models/base.py:40` -- Connector.to_json: `nexla_sdk/models/base.py:52` -- ConnectorCategory: `nexla_sdk/models/enums.py:85` -- CredentialError: `nexla_sdk/exceptions.py:113` -- CredentialError.get_error_summary: `nexla_sdk/exceptions.py:54` -- CredentialsResource: `nexla_sdk/resources/credentials.py:10` -- CredentialsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- CredentialsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- CredentialsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- CredentialsResource.create: `nexla_sdk/resources/credentials.py:66` -- CredentialsResource.delete: `nexla_sdk/resources/credentials.py:96` -- CredentialsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- CredentialsResource.get: `nexla_sdk/resources/credentials.py:50` -- CredentialsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- CredentialsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- CredentialsResource.list: `nexla_sdk/resources/credentials.py:18` -- CredentialsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- CredentialsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- CredentialsResource.probe: `nexla_sdk/resources/credentials.py:108` -- CredentialsResource.probe_sample: `nexla_sdk/resources/credentials.py:158` -- CredentialsResource.probe_tree: `nexla_sdk/resources/credentials.py:134` -- CredentialsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- CredentialsResource.update: `nexla_sdk/resources/credentials.py:83` -- DataSchemasResource: `nexla_sdk/resources/data_schemas.py:6` -- DataSchemasResource.activate: `nexla_sdk/resources/base_resource.py:249` -- DataSchemasResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- DataSchemasResource.copy: `nexla_sdk/resources/base_resource.py:277` -- DataSchemasResource.create: `nexla_sdk/resources/base_resource.py:199` -- DataSchemasResource.delete: `nexla_sdk/resources/base_resource.py:236` -- DataSchemasResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- DataSchemasResource.get: `nexla_sdk/resources/base_resource.py:175` -- DataSchemasResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- DataSchemasResource.get_audit_log: `nexla_sdk/resources/data_schemas.py:14` -- DataSchemasResource.list: `nexla_sdk/resources/base_resource.py:106` -- DataSchemasResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- DataSchemasResource.pause: `nexla_sdk/resources/base_resource.py:263` -- DataSchemasResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- DataSchemasResource.update: `nexla_sdk/resources/base_resource.py:220` -- DestinationsResource: `nexla_sdk/resources/destinations.py:7` -- DestinationsResource.activate: `nexla_sdk/resources/destinations.py:89` -- DestinationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- DestinationsResource.copy: `nexla_sdk/resources/destinations.py:113` -- DestinationsResource.create: `nexla_sdk/resources/destinations.py:49` -- DestinationsResource.delete: `nexla_sdk/resources/destinations.py:77` -- DestinationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- DestinationsResource.get: `nexla_sdk/resources/destinations.py:33` -- DestinationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- DestinationsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- DestinationsResource.list: `nexla_sdk/resources/destinations.py:15` -- DestinationsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- DestinationsResource.pause: `nexla_sdk/resources/destinations.py:101` -- DestinationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- DestinationsResource.update: `nexla_sdk/resources/destinations.py:64` -- DocContainersResource: `nexla_sdk/resources/doc_containers.py:6` -- DocContainersResource.activate: `nexla_sdk/resources/base_resource.py:249` -- DocContainersResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- DocContainersResource.copy: `nexla_sdk/resources/base_resource.py:277` -- DocContainersResource.create: `nexla_sdk/resources/base_resource.py:199` -- DocContainersResource.delete: `nexla_sdk/resources/base_resource.py:236` -- DocContainersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- DocContainersResource.get: `nexla_sdk/resources/base_resource.py:175` -- DocContainersResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- DocContainersResource.get_audit_log: `nexla_sdk/resources/doc_containers.py:14` -- DocContainersResource.list: `nexla_sdk/resources/base_resource.py:106` -- DocContainersResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- DocContainersResource.pause: `nexla_sdk/resources/base_resource.py:263` -- DocContainersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- DocContainersResource.update: `nexla_sdk/resources/base_resource.py:220` -- FlowError: `nexla_sdk/exceptions.py:125` -- FlowError.get_error_summary: `nexla_sdk/exceptions.py:54` -- FlowNode: `nexla_sdk/models/common.py:61` -- FlowNode.to_dict: `nexla_sdk/models/base.py:40` -- FlowNode.to_json: `nexla_sdk/models/base.py:52` -- FlowsResource: `nexla_sdk/resources/flows.py:7` -- FlowsResource.activate: `nexla_sdk/resources/flows.py:83` -- FlowsResource.activate_by_resource: `nexla_sdk/resources/flows.py:164` -- FlowsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- FlowsResource.copy: `nexla_sdk/resources/flows.py:125` -- FlowsResource.create: `nexla_sdk/resources/base_resource.py:199` -- FlowsResource.delete: `nexla_sdk/resources/flows.py:138` -- FlowsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- FlowsResource.delete_by_resource: `nexla_sdk/resources/flows.py:150` -- FlowsResource.docs_recommendation: `nexla_sdk/resources/flows.py:216` -- FlowsResource.get: `nexla_sdk/resources/flows.py:46` -- FlowsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- FlowsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- FlowsResource.get_by_resource: `nexla_sdk/resources/flows.py:62` -- FlowsResource.get_logs: `nexla_sdk/resources/flows.py:221` -- FlowsResource.get_metrics: `nexla_sdk/resources/flows.py:243` -- FlowsResource.list: `nexla_sdk/resources/flows.py:15` -- FlowsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- FlowsResource.pause: `nexla_sdk/resources/flows.py:104` -- FlowsResource.pause_by_resource: `nexla_sdk/resources/flows.py:190` -- FlowsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- FlowsResource.update: `nexla_sdk/resources/base_resource.py:220` -- GenAIResource: `nexla_sdk/resources/genai.py:9` -- GenAIResource.activate: `nexla_sdk/resources/base_resource.py:249` -- GenAIResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- GenAIResource.copy: `nexla_sdk/resources/base_resource.py:277` -- GenAIResource.create: `nexla_sdk/resources/base_resource.py:199` -- GenAIResource.create_config: `nexla_sdk/resources/genai.py:22` -- GenAIResource.create_org_setting: `nexla_sdk/resources/genai.py:49` -- GenAIResource.delete: `nexla_sdk/resources/base_resource.py:236` -- GenAIResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- GenAIResource.delete_config: `nexla_sdk/resources/genai.py:36` -- GenAIResource.delete_org_setting: `nexla_sdk/resources/genai.py:58` -- GenAIResource.get: `nexla_sdk/resources/base_resource.py:175` -- GenAIResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- GenAIResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- GenAIResource.get_config: `nexla_sdk/resources/genai.py:27` -- GenAIResource.get_org_setting: `nexla_sdk/resources/genai.py:54` -- GenAIResource.list: `nexla_sdk/resources/base_resource.py:106` -- GenAIResource.list_configs: `nexla_sdk/resources/genai.py:18` -- GenAIResource.list_org_settings: `nexla_sdk/resources/genai.py:40` -- GenAIResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- GenAIResource.pause: `nexla_sdk/resources/base_resource.py:263` -- GenAIResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- GenAIResource.show_active_config: `nexla_sdk/resources/genai.py:61` -- GenAIResource.update: `nexla_sdk/resources/base_resource.py:220` -- GenAIResource.update_config: `nexla_sdk/resources/genai.py:31` -- LogEntry: `nexla_sdk/models/common.py:41` -- LogEntry.to_dict: `nexla_sdk/models/base.py:40` -- LogEntry.to_json: `nexla_sdk/models/base.py:52` -- LookupsResource: `nexla_sdk/resources/lookups.py:8` -- LookupsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- LookupsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- LookupsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- LookupsResource.create: `nexla_sdk/resources/lookups.py:50` -- LookupsResource.delete: `nexla_sdk/resources/lookups.py:78` -- LookupsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- LookupsResource.delete_entries: `nexla_sdk/resources/lookups.py:131` -- LookupsResource.get: `nexla_sdk/resources/lookups.py:34` -- LookupsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- LookupsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- LookupsResource.get_entries: `nexla_sdk/resources/lookups.py:110` -- LookupsResource.list: `nexla_sdk/resources/lookups.py:16` -- LookupsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- LookupsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- LookupsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- LookupsResource.update: `nexla_sdk/resources/lookups.py:65` -- LookupsResource.upsert_entries: `nexla_sdk/resources/lookups.py:90` -- MarketplaceResource: `nexla_sdk/resources/marketplace.py:11` -- MarketplaceResource.activate: `nexla_sdk/resources/base_resource.py:249` -- MarketplaceResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- MarketplaceResource.add_domain_custodians: `nexla_sdk/resources/marketplace.py:70` -- MarketplaceResource.copy: `nexla_sdk/resources/base_resource.py:277` -- MarketplaceResource.create: `nexla_sdk/resources/base_resource.py:199` -- MarketplaceResource.create_domain: `nexla_sdk/resources/marketplace.py:42` -- MarketplaceResource.create_domain_item: `nexla_sdk/resources/marketplace.py:55` -- MarketplaceResource.create_domains: `nexla_sdk/resources/marketplace.py:24` -- MarketplaceResource.delete: `nexla_sdk/resources/base_resource.py:236` -- MarketplaceResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- MarketplaceResource.delete_domain: `nexla_sdk/resources/marketplace.py:47` -- MarketplaceResource.get: `nexla_sdk/resources/base_resource.py:175` -- MarketplaceResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- MarketplaceResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- MarketplaceResource.get_domain: `nexla_sdk/resources/marketplace.py:33` -- MarketplaceResource.get_domains_for_org: `nexla_sdk/resources/marketplace.py:29` -- MarketplaceResource.list: `nexla_sdk/resources/base_resource.py:106` -- MarketplaceResource.list_domain_custodians: `nexla_sdk/resources/marketplace.py:61` -- MarketplaceResource.list_domain_items: `nexla_sdk/resources/marketplace.py:51` -- MarketplaceResource.list_domains: `nexla_sdk/resources/marketplace.py:20` -- MarketplaceResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- MarketplaceResource.pause: `nexla_sdk/resources/base_resource.py:263` -- MarketplaceResource.remove_domain_custodians: `nexla_sdk/resources/marketplace.py:75` -- MarketplaceResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- MarketplaceResource.update: `nexla_sdk/resources/base_resource.py:220` -- MarketplaceResource.update_domain: `nexla_sdk/resources/marketplace.py:37` -- MarketplaceResource.update_domain_custodians: `nexla_sdk/resources/marketplace.py:65` -- MetricsResource: `nexla_sdk/resources/metrics.py:10` -- MetricsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- MetricsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- MetricsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- MetricsResource.create: `nexla_sdk/resources/base_resource.py:199` -- MetricsResource.delete: `nexla_sdk/resources/base_resource.py:236` -- MetricsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- MetricsResource.get: `nexla_sdk/resources/base_resource.py:175` -- MetricsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- MetricsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- MetricsResource.get_flow_logs: `nexla_sdk/resources/metrics.py:120` -- MetricsResource.get_flow_metrics: `nexla_sdk/resources/metrics.py:97` -- MetricsResource.get_rate_limits: `nexla_sdk/resources/metrics.py:86` -- MetricsResource.get_resource_daily_metrics: `nexla_sdk/resources/metrics.py:23` -- MetricsResource.get_resource_metrics_by_run: `nexla_sdk/resources/metrics.py:51` -- MetricsResource.list: `nexla_sdk/resources/base_resource.py:106` -- MetricsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- MetricsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- MetricsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- MetricsResource.update: `nexla_sdk/resources/base_resource.py:220` -- NexlaClient: `nexla_sdk/client.py:44` -- NexlaClient.get_access_token: `nexla_sdk/client.py:179` -- NexlaClient.logout: `nexla_sdk/client.py:221` -- NexlaClient.refresh_access_token: `nexla_sdk/client.py:201` -- NexlaClient.request: `nexla_sdk/client.py:260` +- ApprovalRequestsResource: `nexla_sdk/resources/approval_requests.py:7` +- ApprovalRequestsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- ApprovalRequestsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- ApprovalRequestsResource.approve: `nexla_sdk/resources/approval_requests.py:25` +- ApprovalRequestsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- ApprovalRequestsResource.create: `nexla_sdk/resources/base_resource.py:229` +- ApprovalRequestsResource.delete: `nexla_sdk/resources/base_resource.py:274` +- ApprovalRequestsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- ApprovalRequestsResource.get: `nexla_sdk/resources/base_resource.py:199` +- ApprovalRequestsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- ApprovalRequestsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- ApprovalRequestsResource.list: `nexla_sdk/resources/base_resource.py:130` +- ApprovalRequestsResource.list_pending: `nexla_sdk/resources/approval_requests.py:15` +- ApprovalRequestsResource.list_requested: `nexla_sdk/resources/approval_requests.py:20` +- ApprovalRequestsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- ApprovalRequestsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- ApprovalRequestsResource.reject: `nexla_sdk/resources/approval_requests.py:30` +- ApprovalRequestsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- ApprovalRequestsResource.update: `nexla_sdk/resources/base_resource.py:252` +- AsyncTasksResource: `nexla_sdk/resources/async_tasks.py:8` +- AsyncTasksResource.acknowledge: `nexla_sdk/resources/async_tasks.py:73` +- AsyncTasksResource.activate: `nexla_sdk/resources/base_resource.py:289` +- AsyncTasksResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- AsyncTasksResource.copy: `nexla_sdk/resources/base_resource.py:321` +- AsyncTasksResource.create: `nexla_sdk/resources/async_tasks.py:21` +- AsyncTasksResource.delete: `nexla_sdk/resources/async_tasks.py:50` +- AsyncTasksResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- AsyncTasksResource.download_link: `nexla_sdk/resources/async_tasks.py:63` +- AsyncTasksResource.explain_arguments: `nexla_sdk/resources/async_tasks.py:41` +- AsyncTasksResource.get: `nexla_sdk/resources/async_tasks.py:45` +- AsyncTasksResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- AsyncTasksResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- AsyncTasksResource.list: `nexla_sdk/resources/async_tasks.py:16` +- AsyncTasksResource.list_by_status: `nexla_sdk/resources/async_tasks.py:32` +- AsyncTasksResource.list_of_type: `nexla_sdk/resources/async_tasks.py:27` +- AsyncTasksResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- AsyncTasksResource.pause: `nexla_sdk/resources/base_resource.py:305` +- AsyncTasksResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- AsyncTasksResource.rerun: `nexla_sdk/resources/async_tasks.py:54` +- AsyncTasksResource.result: `nexla_sdk/resources/async_tasks.py:59` +- AsyncTasksResource.types: `nexla_sdk/resources/async_tasks.py:37` +- AsyncTasksResource.update: `nexla_sdk/resources/base_resource.py:252` +- AttributeTransformsResource: `nexla_sdk/resources/attribute_transforms.py:11` +- AttributeTransformsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- AttributeTransformsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- AttributeTransformsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- AttributeTransformsResource.create: `nexla_sdk/resources/attribute_transforms.py:43` +- AttributeTransformsResource.delete: `nexla_sdk/resources/attribute_transforms.py:53` +- AttributeTransformsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- AttributeTransformsResource.get: `nexla_sdk/resources/attribute_transforms.py:37` +- AttributeTransformsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- AttributeTransformsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- AttributeTransformsResource.list: `nexla_sdk/resources/attribute_transforms.py:19` +- AttributeTransformsResource.list_public: `nexla_sdk/resources/attribute_transforms.py:57` +- AttributeTransformsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- AttributeTransformsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- AttributeTransformsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- AttributeTransformsResource.update: `nexla_sdk/resources/attribute_transforms.py:47` +- AuthenticationError: `nexla_sdk/exceptions.py:72` +- AuthenticationError.get_error_summary: `nexla_sdk/exceptions.py:56` +- AuthorizationError: `nexla_sdk/exceptions.py:82` +- AuthorizationError.get_error_summary: `nexla_sdk/exceptions.py:56` +- BaseModel: `nexla_sdk/models/base.py:10` +- BaseModel.to_dict: `nexla_sdk/models/base.py:42` +- BaseModel.to_json: `nexla_sdk/models/base.py:54` +- CodeContainersResource: `nexla_sdk/resources/code_containers.py:11` +- CodeContainersResource.activate: `nexla_sdk/resources/base_resource.py:289` +- CodeContainersResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- CodeContainersResource.copy: `nexla_sdk/resources/code_containers.py:67` +- CodeContainersResource.create: `nexla_sdk/resources/code_containers.py:45` +- CodeContainersResource.delete: `nexla_sdk/resources/code_containers.py:63` +- CodeContainersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- CodeContainersResource.get: `nexla_sdk/resources/code_containers.py:37` +- CodeContainersResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- CodeContainersResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- CodeContainersResource.list: `nexla_sdk/resources/code_containers.py:19` +- CodeContainersResource.list_public: `nexla_sdk/resources/code_containers.py:71` +- CodeContainersResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- CodeContainersResource.pause: `nexla_sdk/resources/base_resource.py:305` +- CodeContainersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- CodeContainersResource.update: `nexla_sdk/resources/code_containers.py:53` +- Connector: `nexla_sdk/models/common.py:34` +- Connector.to_dict: `nexla_sdk/models/base.py:42` +- Connector.to_json: `nexla_sdk/models/base.py:54` +- ConnectorCategory: `nexla_sdk/models/enums.py:93` +- CredentialError: `nexla_sdk/exceptions.py:120` +- CredentialError.get_error_summary: `nexla_sdk/exceptions.py:56` +- CredentialsResource: `nexla_sdk/resources/credentials.py:19` +- CredentialsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- CredentialsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- CredentialsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- CredentialsResource.create: `nexla_sdk/resources/credentials.py:75` +- CredentialsResource.delete: `nexla_sdk/resources/credentials.py:105` +- CredentialsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- CredentialsResource.get: `nexla_sdk/resources/credentials.py:59` +- CredentialsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- CredentialsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- CredentialsResource.list: `nexla_sdk/resources/credentials.py:27` +- CredentialsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- CredentialsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- CredentialsResource.probe: `nexla_sdk/resources/credentials.py:117` +- CredentialsResource.probe_sample: `nexla_sdk/resources/credentials.py:183` +- CredentialsResource.probe_tree: `nexla_sdk/resources/credentials.py:155` +- CredentialsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- CredentialsResource.update: `nexla_sdk/resources/credentials.py:92` +- DataSchemasResource: `nexla_sdk/resources/data_schemas.py:7` +- DataSchemasResource.activate: `nexla_sdk/resources/base_resource.py:289` +- DataSchemasResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- DataSchemasResource.copy: `nexla_sdk/resources/base_resource.py:321` +- DataSchemasResource.create: `nexla_sdk/resources/base_resource.py:229` +- DataSchemasResource.delete: `nexla_sdk/resources/base_resource.py:274` +- DataSchemasResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- DataSchemasResource.get: `nexla_sdk/resources/base_resource.py:199` +- DataSchemasResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- DataSchemasResource.get_audit_log: `nexla_sdk/resources/data_schemas.py:15` +- DataSchemasResource.list: `nexla_sdk/resources/base_resource.py:130` +- DataSchemasResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- DataSchemasResource.pause: `nexla_sdk/resources/base_resource.py:305` +- DataSchemasResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- DataSchemasResource.update: `nexla_sdk/resources/base_resource.py:252` +- DestinationsResource: `nexla_sdk/resources/destinations.py:12` +- DestinationsResource.activate: `nexla_sdk/resources/destinations.py:94` +- DestinationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- DestinationsResource.copy: `nexla_sdk/resources/destinations.py:118` +- DestinationsResource.create: `nexla_sdk/resources/destinations.py:54` +- DestinationsResource.delete: `nexla_sdk/resources/destinations.py:82` +- DestinationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- DestinationsResource.get: `nexla_sdk/resources/destinations.py:38` +- DestinationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- DestinationsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- DestinationsResource.list: `nexla_sdk/resources/destinations.py:20` +- DestinationsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- DestinationsResource.pause: `nexla_sdk/resources/destinations.py:106` +- DestinationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- DestinationsResource.update: `nexla_sdk/resources/destinations.py:69` +- DocContainersResource: `nexla_sdk/resources/doc_containers.py:7` +- DocContainersResource.activate: `nexla_sdk/resources/base_resource.py:289` +- DocContainersResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- DocContainersResource.copy: `nexla_sdk/resources/base_resource.py:321` +- DocContainersResource.create: `nexla_sdk/resources/base_resource.py:229` +- DocContainersResource.delete: `nexla_sdk/resources/base_resource.py:274` +- DocContainersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- DocContainersResource.get: `nexla_sdk/resources/base_resource.py:199` +- DocContainersResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- DocContainersResource.get_audit_log: `nexla_sdk/resources/doc_containers.py:15` +- DocContainersResource.list: `nexla_sdk/resources/base_resource.py:130` +- DocContainersResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- DocContainersResource.pause: `nexla_sdk/resources/base_resource.py:305` +- DocContainersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- DocContainersResource.update: `nexla_sdk/resources/base_resource.py:252` +- FlowError: `nexla_sdk/exceptions.py:132` +- FlowError.get_error_summary: `nexla_sdk/exceptions.py:56` +- FlowNode: `nexla_sdk/models/common.py:66` +- FlowNode.to_dict: `nexla_sdk/models/base.py:42` +- FlowNode.to_json: `nexla_sdk/models/base.py:54` +- FlowsResource: `nexla_sdk/resources/flows.py:21` +- FlowsResource.activate: `nexla_sdk/resources/flows.py:117` +- FlowsResource.activate_by_resource: `nexla_sdk/resources/flows.py:314` +- FlowsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- FlowsResource.copy: `nexla_sdk/resources/flows.py:171` +- FlowsResource.copy_and_replace_credentials: `nexla_sdk/resources/flows.py:186` +- FlowsResource.create: `nexla_sdk/resources/base_resource.py:229` +- FlowsResource.delete: `nexla_sdk/resources/flows.py:282` +- FlowsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- FlowsResource.delete_by_resource: `nexla_sdk/resources/flows.py:294` +- FlowsResource.docs_recommendation: `nexla_sdk/resources/flows.py:378` +- FlowsResource.get: `nexla_sdk/resources/flows.py:67` +- FlowsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- FlowsResource.get_active_flows_metrics: `nexla_sdk/resources/flows.py:475` +- FlowsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- FlowsResource.get_by_resource: `nexla_sdk/resources/flows.py:90` +- FlowsResource.get_flow_logs: `nexla_sdk/resources/flows.py:397` +- FlowsResource.get_logs: `nexla_sdk/resources/flows.py:529` +- FlowsResource.get_metrics: `nexla_sdk/resources/flows.py:581` +- FlowsResource.get_run_status: `nexla_sdk/resources/flows.py:499` +- FlowsResource.list: `nexla_sdk/resources/flows.py:29` +- FlowsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- FlowsResource.pause: `nexla_sdk/resources/flows.py:140` +- FlowsResource.pause_by_resource: `nexla_sdk/resources/flows.py:346` +- FlowsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- FlowsResource.search_flow_logs: `nexla_sdk/resources/flows.py:438` +- FlowsResource.update: `nexla_sdk/resources/base_resource.py:252` +- GenAIResource: `nexla_sdk/resources/genai.py:16` +- GenAIResource.activate: `nexla_sdk/resources/base_resource.py:289` +- GenAIResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- GenAIResource.copy: `nexla_sdk/resources/base_resource.py:321` +- GenAIResource.create: `nexla_sdk/resources/base_resource.py:229` +- GenAIResource.create_config: `nexla_sdk/resources/genai.py:29` +- GenAIResource.create_org_setting: `nexla_sdk/resources/genai.py:66` +- GenAIResource.delete: `nexla_sdk/resources/base_resource.py:274` +- GenAIResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- GenAIResource.delete_config: `nexla_sdk/resources/genai.py:49` +- GenAIResource.delete_org_setting: `nexla_sdk/resources/genai.py:77` +- GenAIResource.get: `nexla_sdk/resources/base_resource.py:199` +- GenAIResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- GenAIResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- GenAIResource.get_config: `nexla_sdk/resources/genai.py:34` +- GenAIResource.get_org_setting: `nexla_sdk/resources/genai.py:71` +- GenAIResource.list: `nexla_sdk/resources/base_resource.py:130` +- GenAIResource.list_configs: `nexla_sdk/resources/genai.py:25` +- GenAIResource.list_org_settings: `nexla_sdk/resources/genai.py:55` +- GenAIResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- GenAIResource.pause: `nexla_sdk/resources/base_resource.py:305` +- GenAIResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- GenAIResource.show_active_config: `nexla_sdk/resources/genai.py:82` +- GenAIResource.update: `nexla_sdk/resources/base_resource.py:252` +- GenAIResource.update_config: `nexla_sdk/resources/genai.py:40` +- LogEntry: `nexla_sdk/models/common.py:45` +- LogEntry.to_dict: `nexla_sdk/models/base.py:42` +- LogEntry.to_json: `nexla_sdk/models/base.py:54` +- LookupsResource: `nexla_sdk/resources/lookups.py:14` +- LookupsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- LookupsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- LookupsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- LookupsResource.create: `nexla_sdk/resources/lookups.py:56` +- LookupsResource.delete: `nexla_sdk/resources/lookups.py:84` +- LookupsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- LookupsResource.delete_entries: `nexla_sdk/resources/lookups.py:137` +- LookupsResource.get: `nexla_sdk/resources/lookups.py:40` +- LookupsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- LookupsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- LookupsResource.get_entries: `nexla_sdk/resources/lookups.py:116` +- LookupsResource.list: `nexla_sdk/resources/lookups.py:22` +- LookupsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- LookupsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- LookupsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- LookupsResource.update: `nexla_sdk/resources/lookups.py:71` +- LookupsResource.upsert_entries: `nexla_sdk/resources/lookups.py:96` +- MarketplaceResource: `nexla_sdk/resources/marketplace.py:16` +- MarketplaceResource.activate: `nexla_sdk/resources/base_resource.py:289` +- MarketplaceResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- MarketplaceResource.add_domain_custodians: `nexla_sdk/resources/marketplace.py:91` +- MarketplaceResource.copy: `nexla_sdk/resources/base_resource.py:321` +- MarketplaceResource.create: `nexla_sdk/resources/base_resource.py:229` +- MarketplaceResource.create_domain: `nexla_sdk/resources/marketplace.py:53` +- MarketplaceResource.create_domain_item: `nexla_sdk/resources/marketplace.py:66` +- MarketplaceResource.create_domains: `nexla_sdk/resources/marketplace.py:29` +- MarketplaceResource.delete: `nexla_sdk/resources/base_resource.py:274` +- MarketplaceResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- MarketplaceResource.delete_domain: `nexla_sdk/resources/marketplace.py:58` +- MarketplaceResource.get: `nexla_sdk/resources/base_resource.py:199` +- MarketplaceResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- MarketplaceResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- MarketplaceResource.get_domain: `nexla_sdk/resources/marketplace.py:40` +- MarketplaceResource.get_domains_for_org: `nexla_sdk/resources/marketplace.py:34` +- MarketplaceResource.list: `nexla_sdk/resources/base_resource.py:130` +- MarketplaceResource.list_domain_custodians: `nexla_sdk/resources/marketplace.py:76` +- MarketplaceResource.list_domain_items: `nexla_sdk/resources/marketplace.py:62` +- MarketplaceResource.list_domains: `nexla_sdk/resources/marketplace.py:25` +- MarketplaceResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- MarketplaceResource.pause: `nexla_sdk/resources/base_resource.py:305` +- MarketplaceResource.remove_domain_custodians: `nexla_sdk/resources/marketplace.py:100` +- MarketplaceResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- MarketplaceResource.update: `nexla_sdk/resources/base_resource.py:252` +- MarketplaceResource.update_domain: `nexla_sdk/resources/marketplace.py:44` +- MarketplaceResource.update_domain_custodians: `nexla_sdk/resources/marketplace.py:82` +- MetricsResource: `nexla_sdk/resources/metrics.py:26` +- MetricsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- MetricsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- MetricsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- MetricsResource.create: `nexla_sdk/resources/base_resource.py:229` +- MetricsResource.delete: `nexla_sdk/resources/base_resource.py:274` +- MetricsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- MetricsResource.get: `nexla_sdk/resources/base_resource.py:199` +- MetricsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- MetricsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- MetricsResource.get_flow_logs: `nexla_sdk/resources/metrics.py:216` +- MetricsResource.get_flow_metrics: `nexla_sdk/resources/metrics.py:162` +- MetricsResource.get_flow_metrics_summary: `nexla_sdk/resources/metrics.py:148` +- MetricsResource.get_rate_limits: `nexla_sdk/resources/metrics.py:111` +- MetricsResource.get_resource_daily_metrics: `nexla_sdk/resources/metrics.py:39` +- MetricsResource.get_resource_flow_metrics: `nexla_sdk/resources/metrics.py:121` +- MetricsResource.get_resource_metrics_by_run: `nexla_sdk/resources/metrics.py:70` +- MetricsResource.list: `nexla_sdk/resources/base_resource.py:130` +- MetricsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- MetricsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- MetricsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- MetricsResource.update: `nexla_sdk/resources/base_resource.py:252` +- NexlaClient: `nexla_sdk/client.py:52` +- NexlaClient.create_webhook_client: `nexla_sdk/client.py:243` +- NexlaClient.get_access_token: `nexla_sdk/client.py:193` +- NexlaClient.logout: `nexla_sdk/client.py:235` +- NexlaClient.refresh_access_token: `nexla_sdk/client.py:215` +- NexlaClient.request: `nexla_sdk/client.py:316` - NexlaError: `nexla_sdk/exceptions.py:4` -- NexlaError.get_error_summary: `nexla_sdk/exceptions.py:54` -- NexsetsResource: `nexla_sdk/resources/nexsets.py:7` -- NexsetsResource.activate: `nexla_sdk/resources/nexsets.py:89` -- NexsetsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- NexsetsResource.copy: `nexla_sdk/resources/nexsets.py:144` -- NexsetsResource.create: `nexla_sdk/resources/nexsets.py:49` -- NexsetsResource.delete: `nexla_sdk/resources/nexsets.py:77` -- NexsetsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- NexsetsResource.docs_recommendation: `nexla_sdk/resources/nexsets.py:158` -- NexsetsResource.get: `nexla_sdk/resources/nexsets.py:33` -- NexsetsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- NexsetsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- NexsetsResource.get_samples: `nexla_sdk/resources/nexsets.py:113` -- NexsetsResource.list: `nexla_sdk/resources/nexsets.py:15` -- NexsetsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- NexsetsResource.pause: `nexla_sdk/resources/nexsets.py:101` -- NexsetsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- NexsetsResource.update: `nexla_sdk/resources/nexsets.py:64` -- NotFoundError: `nexla_sdk/exceptions.py:85` -- NotFoundError.get_error_summary: `nexla_sdk/exceptions.py:54` -- NotificationChannel: `nexla_sdk/models/enums.py:53` -- NotificationLevel: `nexla_sdk/models/enums.py:43` -- NotificationsResource: `nexla_sdk/resources/notifications.py:13` -- NotificationsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- NotificationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- NotificationsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- NotificationsResource.create: `nexla_sdk/resources/base_resource.py:199` -- NotificationsResource.create_channel_setting: `nexla_sdk/resources/notifications.py:190` -- NotificationsResource.create_setting: `nexla_sdk/resources/notifications.py:276` -- NotificationsResource.delete: `nexla_sdk/resources/notifications.py:34` -- NotificationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- NotificationsResource.delete_all: `nexla_sdk/resources/notifications.py:82` -- NotificationsResource.delete_channel_setting: `nexla_sdk/resources/notifications.py:235` -- NotificationsResource.delete_setting: `nexla_sdk/resources/notifications.py:321` -- NotificationsResource.get: `nexla_sdk/resources/notifications.py:21` -- NotificationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- NotificationsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- NotificationsResource.get_channel_setting: `nexla_sdk/resources/notifications.py:204` -- NotificationsResource.get_count: `nexla_sdk/resources/notifications.py:92` -- NotificationsResource.get_resource_settings: `nexla_sdk/resources/notifications.py:352` -- NotificationsResource.get_setting: `nexla_sdk/resources/notifications.py:290` -- NotificationsResource.get_settings_by_type: `nexla_sdk/resources/notifications.py:334` -- NotificationsResource.get_type: `nexla_sdk/resources/notifications.py:159` -- NotificationsResource.get_types: `nexla_sdk/resources/notifications.py:144` -- NotificationsResource.list: `nexla_sdk/resources/notifications.py:46` -- NotificationsResource.list_channel_settings: `nexla_sdk/resources/notifications.py:179` -- NotificationsResource.list_settings: `nexla_sdk/resources/notifications.py:249` -- NotificationsResource.mark_read: `nexla_sdk/resources/notifications.py:107` -- NotificationsResource.mark_unread: `nexla_sdk/resources/notifications.py:125` -- NotificationsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- NotificationsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- NotificationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- NotificationsResource.update: `nexla_sdk/resources/base_resource.py:220` -- NotificationsResource.update_channel_setting: `nexla_sdk/resources/notifications.py:218` -- NotificationsResource.update_setting: `nexla_sdk/resources/notifications.py:304` -- OrgAuthConfigsResource: `nexla_sdk/resources/org_auth_configs.py:7` -- OrgAuthConfigsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- OrgAuthConfigsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- OrgAuthConfigsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- OrgAuthConfigsResource.create: `nexla_sdk/resources/org_auth_configs.py:30` -- OrgAuthConfigsResource.delete: `nexla_sdk/resources/org_auth_configs.py:42` -- OrgAuthConfigsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- OrgAuthConfigsResource.get: `nexla_sdk/resources/org_auth_configs.py:25` -- OrgAuthConfigsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- OrgAuthConfigsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- OrgAuthConfigsResource.list: `nexla_sdk/resources/org_auth_configs.py:15` -- OrgAuthConfigsResource.list_all: `nexla_sdk/resources/org_auth_configs.py:20` -- OrgAuthConfigsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- OrgAuthConfigsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- OrgAuthConfigsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- OrgAuthConfigsResource.update: `nexla_sdk/resources/org_auth_configs.py:36` -- OrgMembershipStatus: `nexla_sdk/models/enums.py:79` -- Organization: `nexla_sdk/models/common.py:14` -- Organization.to_dict: `nexla_sdk/models/base.py:40` -- Organization.to_json: `nexla_sdk/models/base.py:52` -- OrganizationsResource: `nexla_sdk/resources/organizations.py:15` -- OrganizationsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- OrganizationsResource.activate_members: `nexla_sdk/resources/organizations.py:164` -- OrganizationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- OrganizationsResource.add_custodians: `nexla_sdk/resources/organizations.py:291` -- OrganizationsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- OrganizationsResource.create: `nexla_sdk/resources/organizations.py:54` -- OrganizationsResource.deactivate_members: `nexla_sdk/resources/organizations.py:149` -- OrganizationsResource.delete: `nexla_sdk/resources/organizations.py:79` -- OrganizationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- OrganizationsResource.delete_members: `nexla_sdk/resources/organizations.py:135` -- OrganizationsResource.get: `nexla_sdk/resources/organizations.py:41` -- OrganizationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- OrganizationsResource.get_account_summary: `nexla_sdk/resources/organizations.py:179` -- OrganizationsResource.get_audit_log: `nexla_sdk/resources/organizations.py:212` -- OrganizationsResource.get_auth_settings: `nexla_sdk/resources/organizations.py:243` -- OrganizationsResource.get_current_account_summary: `nexla_sdk/resources/organizations.py:193` -- OrganizationsResource.get_custodians: `nexla_sdk/resources/organizations.py:276` -- OrganizationsResource.get_members: `nexla_sdk/resources/organizations.py:91` -- OrganizationsResource.get_org_flow_account_metrics: `nexla_sdk/resources/organizations.py:204` -- OrganizationsResource.get_resource_audit_log: `nexla_sdk/resources/organizations.py:227` -- OrganizationsResource.list: `nexla_sdk/resources/organizations.py:23` -- OrganizationsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- OrganizationsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- OrganizationsResource.remove_custodians: `nexla_sdk/resources/organizations.py:299` -- OrganizationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- OrganizationsResource.replace_members: `nexla_sdk/resources/organizations.py:120` -- OrganizationsResource.update: `nexla_sdk/resources/organizations.py:66` -- OrganizationsResource.update_auth_setting: `nexla_sdk/resources/organizations.py:256` -- OrganizationsResource.update_custodians: `nexla_sdk/resources/organizations.py:283` -- OrganizationsResource.update_members: `nexla_sdk/resources/organizations.py:105` -- Owner: `nexla_sdk/models/common.py:6` -- Owner.to_dict: `nexla_sdk/models/base.py:40` -- Owner.to_json: `nexla_sdk/models/base.py:52` -- ProjectsResource: `nexla_sdk/resources/projects.py:8` -- ProjectsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- ProjectsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- ProjectsResource.add_data_flows: `nexla_sdk/resources/projects.py:161` -- ProjectsResource.add_flows: `nexla_sdk/resources/projects.py:108` -- ProjectsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- ProjectsResource.create: `nexla_sdk/resources/projects.py:54` -- ProjectsResource.delete: `nexla_sdk/resources/projects.py:82` -- ProjectsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- ProjectsResource.get: `nexla_sdk/resources/projects.py:38` -- ProjectsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- ProjectsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- ProjectsResource.get_flows: `nexla_sdk/resources/projects.py:94` -- ProjectsResource.list: `nexla_sdk/resources/projects.py:16` -- ProjectsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- ProjectsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- ProjectsResource.remove_data_flows: `nexla_sdk/resources/projects.py:177` -- ProjectsResource.remove_flows: `nexla_sdk/resources/projects.py:142` -- ProjectsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- ProjectsResource.replace_data_flows: `nexla_sdk/resources/projects.py:169` -- ProjectsResource.replace_flows: `nexla_sdk/resources/projects.py:125` -- ProjectsResource.search_flows: `nexla_sdk/resources/projects.py:187` -- ProjectsResource.update: `nexla_sdk/resources/projects.py:69` -- RateLimitError: `nexla_sdk/exceptions.py:95` -- RateLimitError.get_error_summary: `nexla_sdk/exceptions.py:54` -- ResourceConflictError: `nexla_sdk/exceptions.py:108` -- ResourceConflictError.get_error_summary: `nexla_sdk/exceptions.py:54` -- ResourceStatus: `nexla_sdk/models/enums.py:12` -- ResourceType: `nexla_sdk/models/enums.py:23` -- RuntimesResource: `nexla_sdk/resources/runtimes.py:7` -- RuntimesResource.activate: `nexla_sdk/resources/runtimes.py:44` -- RuntimesResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- RuntimesResource.copy: `nexla_sdk/resources/base_resource.py:277` -- RuntimesResource.create: `nexla_sdk/resources/runtimes.py:20` -- RuntimesResource.delete: `nexla_sdk/resources/runtimes.py:39` -- RuntimesResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- RuntimesResource.get: `nexla_sdk/resources/runtimes.py:26` -- RuntimesResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- RuntimesResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- RuntimesResource.list: `nexla_sdk/resources/runtimes.py:15` -- RuntimesResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- RuntimesResource.pause: `nexla_sdk/resources/runtimes.py:50` -- RuntimesResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- RuntimesResource.update: `nexla_sdk/resources/runtimes.py:32` -- SelfSignupResource: `nexla_sdk/resources/self_signup.py:6` -- SelfSignupResource.activate: `nexla_sdk/resources/base_resource.py:249` -- SelfSignupResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- SelfSignupResource.add_blocked_domain: `nexla_sdk/resources/self_signup.py:34` -- SelfSignupResource.approve_request: `nexla_sdk/resources/self_signup.py:26` -- SelfSignupResource.copy: `nexla_sdk/resources/base_resource.py:277` -- SelfSignupResource.create: `nexla_sdk/resources/base_resource.py:199` -- SelfSignupResource.delete: `nexla_sdk/resources/base_resource.py:236` -- SelfSignupResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- SelfSignupResource.delete_blocked_domain: `nexla_sdk/resources/self_signup.py:42` -- SelfSignupResource.get: `nexla_sdk/resources/base_resource.py:175` -- SelfSignupResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- SelfSignupResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- SelfSignupResource.list: `nexla_sdk/resources/base_resource.py:106` -- SelfSignupResource.list_blocked_domains: `nexla_sdk/resources/self_signup.py:30` -- SelfSignupResource.list_requests: `nexla_sdk/resources/self_signup.py:22` -- SelfSignupResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- SelfSignupResource.pause: `nexla_sdk/resources/base_resource.py:263` -- SelfSignupResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- SelfSignupResource.signup: `nexla_sdk/resources/self_signup.py:15` -- SelfSignupResource.update: `nexla_sdk/resources/base_resource.py:220` -- SelfSignupResource.update_blocked_domain: `nexla_sdk/resources/self_signup.py:38` -- SelfSignupResource.verify_email: `nexla_sdk/resources/self_signup.py:18` -- ServerError: `nexla_sdk/exceptions.py:103` -- ServerError.get_error_summary: `nexla_sdk/exceptions.py:54` -- SourcesResource: `nexla_sdk/resources/sources.py:7` -- SourcesResource.activate: `nexla_sdk/resources/sources.py:93` -- SourcesResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- SourcesResource.copy: `nexla_sdk/resources/sources.py:117` -- SourcesResource.create: `nexla_sdk/resources/sources.py:53` -- SourcesResource.delete: `nexla_sdk/resources/sources.py:81` -- SourcesResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- SourcesResource.get: `nexla_sdk/resources/sources.py:37` -- SourcesResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- SourcesResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- SourcesResource.list: `nexla_sdk/resources/sources.py:15` -- SourcesResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- SourcesResource.pause: `nexla_sdk/resources/sources.py:105` -- SourcesResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- SourcesResource.update: `nexla_sdk/resources/sources.py:68` -- TeamsResource: `nexla_sdk/resources/teams.py:7` -- TeamsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- TeamsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- TeamsResource.add_members: `nexla_sdk/resources/teams.py:103` -- TeamsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- TeamsResource.create: `nexla_sdk/resources/teams.py:49` -- TeamsResource.delete: `nexla_sdk/resources/teams.py:77` -- TeamsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- TeamsResource.get: `nexla_sdk/resources/teams.py:33` -- TeamsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- TeamsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- TeamsResource.get_members: `nexla_sdk/resources/teams.py:89` -- TeamsResource.list: `nexla_sdk/resources/teams.py:15` -- TeamsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- TeamsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- TeamsResource.remove_members: `nexla_sdk/resources/teams.py:133` -- TeamsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- TeamsResource.replace_members: `nexla_sdk/resources/teams.py:118` -- TeamsResource.update: `nexla_sdk/resources/teams.py:64` -- TransformError: `nexla_sdk/exceptions.py:139` -- TransformError.get_error_summary: `nexla_sdk/exceptions.py:54` -- TransformsResource: `nexla_sdk/resources/transforms.py:7` -- TransformsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- TransformsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- TransformsResource.copy: `nexla_sdk/resources/transforms.py:49` -- TransformsResource.create: `nexla_sdk/resources/transforms.py:37` -- TransformsResource.delete: `nexla_sdk/resources/transforms.py:45` -- TransformsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- TransformsResource.get: `nexla_sdk/resources/transforms.py:33` -- TransformsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- TransformsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- TransformsResource.list: `nexla_sdk/resources/transforms.py:15` -- TransformsResource.list_public: `nexla_sdk/resources/transforms.py:53` -- TransformsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- TransformsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- TransformsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- TransformsResource.update: `nexla_sdk/resources/transforms.py:41` -- UserStatus: `nexla_sdk/models/enums.py:70` -- UserTier: `nexla_sdk/models/enums.py:62` -- UsersResource: `nexla_sdk/resources/users.py:8` -- UsersResource.activate: `nexla_sdk/resources/base_resource.py:249` -- UsersResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- UsersResource.copy: `nexla_sdk/resources/base_resource.py:277` -- UsersResource.create: `nexla_sdk/resources/users.py:62` -- UsersResource.create_quarantine_settings: `nexla_sdk/resources/users.py:131` -- UsersResource.delete: `nexla_sdk/resources/users.py:90` -- UsersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- UsersResource.delete_quarantine_settings: `nexla_sdk/resources/users.py:169` -- UsersResource.get: `nexla_sdk/resources/users.py:40` -- UsersResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- UsersResource.get_account_metrics: `nexla_sdk/resources/users.py:224` -- UsersResource.get_audit_log: `nexla_sdk/resources/users.py:182` -- UsersResource.get_current: `nexla_sdk/resources/users.py:113` -- UsersResource.get_daily_metrics: `nexla_sdk/resources/users.py:270` -- UsersResource.get_dashboard_metrics: `nexla_sdk/resources/users.py:250` -- UsersResource.get_quarantine_settings: `nexla_sdk/resources/users.py:118` -- UsersResource.get_settings: `nexla_sdk/resources/users.py:102` -- UsersResource.get_transferable_resources: `nexla_sdk/resources/users.py:190` -- UsersResource.list: `nexla_sdk/resources/users.py:16` -- UsersResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- UsersResource.pause: `nexla_sdk/resources/base_resource.py:263` -- UsersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- UsersResource.transfer_resources: `nexla_sdk/resources/users.py:205` -- UsersResource.update: `nexla_sdk/resources/users.py:77` -- UsersResource.update_quarantine_settings: `nexla_sdk/resources/users.py:153` -- ValidationError: `nexla_sdk/exceptions.py:90` -- ValidationError.get_error_summary: `nexla_sdk/exceptions.py:54` +- NexlaError.get_error_summary: `nexla_sdk/exceptions.py:56` +- NexsetsResource: `nexla_sdk/resources/nexsets.py:12` +- NexsetsResource.activate: `nexla_sdk/resources/nexsets.py:94` +- NexsetsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- NexsetsResource.copy: `nexla_sdk/resources/nexsets.py:147` +- NexsetsResource.create: `nexla_sdk/resources/nexsets.py:54` +- NexsetsResource.delete: `nexla_sdk/resources/nexsets.py:82` +- NexsetsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- NexsetsResource.docs_recommendation: `nexla_sdk/resources/nexsets.py:161` +- NexsetsResource.get: `nexla_sdk/resources/nexsets.py:38` +- NexsetsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- NexsetsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- NexsetsResource.get_samples: `nexla_sdk/resources/nexsets.py:118` +- NexsetsResource.list: `nexla_sdk/resources/nexsets.py:20` +- NexsetsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- NexsetsResource.pause: `nexla_sdk/resources/nexsets.py:106` +- NexsetsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- NexsetsResource.update: `nexla_sdk/resources/nexsets.py:69` +- NotFoundError: `nexla_sdk/exceptions.py:88` +- NotFoundError.get_error_summary: `nexla_sdk/exceptions.py:56` +- NotificationChannel: `nexla_sdk/models/enums.py:57` +- NotificationLevel: `nexla_sdk/models/enums.py:46` +- NotificationsResource: `nexla_sdk/resources/notifications.py:19` +- NotificationsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- NotificationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- NotificationsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- NotificationsResource.create: `nexla_sdk/resources/base_resource.py:229` +- NotificationsResource.create_channel_setting: `nexla_sdk/resources/notifications.py:195` +- NotificationsResource.create_setting: `nexla_sdk/resources/notifications.py:285` +- NotificationsResource.delete: `nexla_sdk/resources/notifications.py:40` +- NotificationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- NotificationsResource.delete_all: `nexla_sdk/resources/notifications.py:90` +- NotificationsResource.delete_channel_setting: `nexla_sdk/resources/notifications.py:242` +- NotificationsResource.delete_setting: `nexla_sdk/resources/notifications.py:330` +- NotificationsResource.get: `nexla_sdk/resources/notifications.py:27` +- NotificationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- NotificationsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- NotificationsResource.get_channel_setting: `nexla_sdk/resources/notifications.py:211` +- NotificationsResource.get_count: `nexla_sdk/resources/notifications.py:100` +- NotificationsResource.get_resource_settings: `nexla_sdk/resources/notifications.py:361` +- NotificationsResource.get_setting: `nexla_sdk/resources/notifications.py:299` +- NotificationsResource.get_settings_by_type: `nexla_sdk/resources/notifications.py:343` +- NotificationsResource.get_type: `nexla_sdk/resources/notifications.py:167` +- NotificationsResource.get_types: `nexla_sdk/resources/notifications.py:152` +- NotificationsResource.list: `nexla_sdk/resources/notifications.py:52` +- NotificationsResource.list_channel_settings: `nexla_sdk/resources/notifications.py:184` +- NotificationsResource.list_settings: `nexla_sdk/resources/notifications.py:256` +- NotificationsResource.mark_read: `nexla_sdk/resources/notifications.py:115` +- NotificationsResource.mark_unread: `nexla_sdk/resources/notifications.py:133` +- NotificationsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- NotificationsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- NotificationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- NotificationsResource.update: `nexla_sdk/resources/base_resource.py:252` +- NotificationsResource.update_channel_setting: `nexla_sdk/resources/notifications.py:225` +- NotificationsResource.update_setting: `nexla_sdk/resources/notifications.py:313` +- OrgAuthConfigsResource: `nexla_sdk/resources/org_auth_configs.py:8` +- OrgAuthConfigsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- OrgAuthConfigsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- OrgAuthConfigsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- OrgAuthConfigsResource.create: `nexla_sdk/resources/org_auth_configs.py:31` +- OrgAuthConfigsResource.delete: `nexla_sdk/resources/org_auth_configs.py:45` +- OrgAuthConfigsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- OrgAuthConfigsResource.get: `nexla_sdk/resources/org_auth_configs.py:26` +- OrgAuthConfigsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- OrgAuthConfigsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- OrgAuthConfigsResource.list: `nexla_sdk/resources/org_auth_configs.py:16` +- OrgAuthConfigsResource.list_all: `nexla_sdk/resources/org_auth_configs.py:21` +- OrgAuthConfigsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- OrgAuthConfigsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- OrgAuthConfigsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- OrgAuthConfigsResource.update: `nexla_sdk/resources/org_auth_configs.py:37` +- OrgMembershipStatus: `nexla_sdk/models/enums.py:86` +- Organization: `nexla_sdk/models/common.py:16` +- Organization.to_dict: `nexla_sdk/models/base.py:42` +- Organization.to_json: `nexla_sdk/models/base.py:54` +- OrganizationsResource: `nexla_sdk/resources/organizations.py:22` +- OrganizationsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- OrganizationsResource.activate_members: `nexla_sdk/resources/organizations.py:173` +- OrganizationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- OrganizationsResource.add_custodians: `nexla_sdk/resources/organizations.py:365` +- OrganizationsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- OrganizationsResource.create: `nexla_sdk/resources/organizations.py:61` +- OrganizationsResource.deactivate_members: `nexla_sdk/resources/organizations.py:156` +- OrganizationsResource.delete: `nexla_sdk/resources/organizations.py:86` +- OrganizationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- OrganizationsResource.delete_members: `nexla_sdk/resources/organizations.py:142` +- OrganizationsResource.get: `nexla_sdk/resources/organizations.py:48` +- OrganizationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- OrganizationsResource.get_account_summary: `nexla_sdk/resources/organizations.py:190` +- OrganizationsResource.get_audit_log: `nexla_sdk/resources/organizations.py:227` +- OrganizationsResource.get_auth_settings: `nexla_sdk/resources/organizations.py:316` +- OrganizationsResource.get_current_account_summary: `nexla_sdk/resources/organizations.py:204` +- OrganizationsResource.get_custodians: `nexla_sdk/resources/organizations.py:348` +- OrganizationsResource.get_flow_status_metrics: `nexla_sdk/resources/organizations.py:269` +- OrganizationsResource.get_members: `nexla_sdk/resources/organizations.py:98` +- OrganizationsResource.get_org_flow_account_metrics: `nexla_sdk/resources/organizations.py:215` +- OrganizationsResource.get_resource_audit_log: `nexla_sdk/resources/organizations.py:294` +- OrganizationsResource.list: `nexla_sdk/resources/organizations.py:30` +- OrganizationsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- OrganizationsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- OrganizationsResource.remove_custodians: `nexla_sdk/resources/organizations.py:375` +- OrganizationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- OrganizationsResource.replace_members: `nexla_sdk/resources/organizations.py:127` +- OrganizationsResource.update: `nexla_sdk/resources/organizations.py:73` +- OrganizationsResource.update_auth_setting: `nexla_sdk/resources/organizations.py:329` +- OrganizationsResource.update_custodians: `nexla_sdk/resources/organizations.py:355` +- OrganizationsResource.update_members: `nexla_sdk/resources/organizations.py:112` +- Owner: `nexla_sdk/models/common.py:7` +- Owner.to_dict: `nexla_sdk/models/base.py:42` +- Owner.to_json: `nexla_sdk/models/base.py:54` +- ProjectsResource: `nexla_sdk/resources/projects.py:13` +- ProjectsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- ProjectsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- ProjectsResource.add_data_flows: `nexla_sdk/resources/projects.py:170` +- ProjectsResource.add_flows: `nexla_sdk/resources/projects.py:113` +- ProjectsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- ProjectsResource.create: `nexla_sdk/resources/projects.py:59` +- ProjectsResource.delete: `nexla_sdk/resources/projects.py:87` +- ProjectsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- ProjectsResource.get: `nexla_sdk/resources/projects.py:43` +- ProjectsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- ProjectsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- ProjectsResource.get_flows: `nexla_sdk/resources/projects.py:99` +- ProjectsResource.list: `nexla_sdk/resources/projects.py:21` +- ProjectsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- ProjectsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- ProjectsResource.remove_data_flows: `nexla_sdk/resources/projects.py:190` +- ProjectsResource.remove_flows: `nexla_sdk/resources/projects.py:151` +- ProjectsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- ProjectsResource.replace_data_flows: `nexla_sdk/resources/projects.py:180` +- ProjectsResource.replace_flows: `nexla_sdk/resources/projects.py:132` +- ProjectsResource.search_flows: `nexla_sdk/resources/projects.py:200` +- ProjectsResource.update: `nexla_sdk/resources/projects.py:74` +- RateLimitError: `nexla_sdk/exceptions.py:100` +- RateLimitError.get_error_summary: `nexla_sdk/exceptions.py:56` +- ResourceConflictError: `nexla_sdk/exceptions.py:114` +- ResourceConflictError.get_error_summary: `nexla_sdk/exceptions.py:56` +- ResourceStatus: `nexla_sdk/models/enums.py:13` +- ResourceType: `nexla_sdk/models/enums.py:25` +- RuntimesResource: `nexla_sdk/resources/runtimes.py:8` +- RuntimesResource.activate: `nexla_sdk/resources/runtimes.py:45` +- RuntimesResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- RuntimesResource.copy: `nexla_sdk/resources/base_resource.py:321` +- RuntimesResource.create: `nexla_sdk/resources/runtimes.py:21` +- RuntimesResource.delete: `nexla_sdk/resources/runtimes.py:40` +- RuntimesResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- RuntimesResource.get: `nexla_sdk/resources/runtimes.py:27` +- RuntimesResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- RuntimesResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- RuntimesResource.list: `nexla_sdk/resources/runtimes.py:16` +- RuntimesResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- RuntimesResource.pause: `nexla_sdk/resources/runtimes.py:51` +- RuntimesResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- RuntimesResource.update: `nexla_sdk/resources/runtimes.py:33` +- SelfSignupResource: `nexla_sdk/resources/self_signup.py:7` +- SelfSignupResource.activate: `nexla_sdk/resources/base_resource.py:289` +- SelfSignupResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- SelfSignupResource.add_blocked_domain: `nexla_sdk/resources/self_signup.py:39` +- SelfSignupResource.approve_request: `nexla_sdk/resources/self_signup.py:29` +- SelfSignupResource.copy: `nexla_sdk/resources/base_resource.py:321` +- SelfSignupResource.create: `nexla_sdk/resources/base_resource.py:229` +- SelfSignupResource.delete: `nexla_sdk/resources/base_resource.py:274` +- SelfSignupResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- SelfSignupResource.delete_blocked_domain: `nexla_sdk/resources/self_signup.py:51` +- SelfSignupResource.get: `nexla_sdk/resources/base_resource.py:199` +- SelfSignupResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- SelfSignupResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- SelfSignupResource.list: `nexla_sdk/resources/base_resource.py:130` +- SelfSignupResource.list_blocked_domains: `nexla_sdk/resources/self_signup.py:35` +- SelfSignupResource.list_requests: `nexla_sdk/resources/self_signup.py:25` +- SelfSignupResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- SelfSignupResource.pause: `nexla_sdk/resources/base_resource.py:305` +- SelfSignupResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- SelfSignupResource.signup: `nexla_sdk/resources/self_signup.py:16` +- SelfSignupResource.update: `nexla_sdk/resources/base_resource.py:252` +- SelfSignupResource.update_blocked_domain: `nexla_sdk/resources/self_signup.py:45` +- SelfSignupResource.verify_email: `nexla_sdk/resources/self_signup.py:19` +- ServerError: `nexla_sdk/exceptions.py:108` +- ServerError.get_error_summary: `nexla_sdk/exceptions.py:56` +- SourcesResource: `nexla_sdk/resources/sources.py:12` +- SourcesResource.activate: `nexla_sdk/resources/sources.py:98` +- SourcesResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- SourcesResource.copy: `nexla_sdk/resources/sources.py:122` +- SourcesResource.create: `nexla_sdk/resources/sources.py:58` +- SourcesResource.delete: `nexla_sdk/resources/sources.py:86` +- SourcesResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- SourcesResource.get: `nexla_sdk/resources/sources.py:42` +- SourcesResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- SourcesResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- SourcesResource.list: `nexla_sdk/resources/sources.py:20` +- SourcesResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- SourcesResource.pause: `nexla_sdk/resources/sources.py:110` +- SourcesResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- SourcesResource.update: `nexla_sdk/resources/sources.py:73` +- TeamsResource: `nexla_sdk/resources/teams.py:8` +- TeamsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- TeamsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- TeamsResource.add_members: `nexla_sdk/resources/teams.py:104` +- TeamsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- TeamsResource.create: `nexla_sdk/resources/teams.py:50` +- TeamsResource.delete: `nexla_sdk/resources/teams.py:78` +- TeamsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- TeamsResource.get: `nexla_sdk/resources/teams.py:34` +- TeamsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- TeamsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- TeamsResource.get_members: `nexla_sdk/resources/teams.py:90` +- TeamsResource.list: `nexla_sdk/resources/teams.py:16` +- TeamsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- TeamsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- TeamsResource.remove_members: `nexla_sdk/resources/teams.py:136` +- TeamsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- TeamsResource.replace_members: `nexla_sdk/resources/teams.py:119` +- TeamsResource.update: `nexla_sdk/resources/teams.py:65` +- TransformError: `nexla_sdk/exceptions.py:152` +- TransformError.get_error_summary: `nexla_sdk/exceptions.py:56` +- TransformsResource: `nexla_sdk/resources/transforms.py:8` +- TransformsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- TransformsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- TransformsResource.copy: `nexla_sdk/resources/transforms.py:50` +- TransformsResource.create: `nexla_sdk/resources/transforms.py:38` +- TransformsResource.delete: `nexla_sdk/resources/transforms.py:46` +- TransformsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- TransformsResource.get: `nexla_sdk/resources/transforms.py:34` +- TransformsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- TransformsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- TransformsResource.list: `nexla_sdk/resources/transforms.py:16` +- TransformsResource.list_public: `nexla_sdk/resources/transforms.py:54` +- TransformsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- TransformsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- TransformsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- TransformsResource.update: `nexla_sdk/resources/transforms.py:42` +- UserStatus: `nexla_sdk/models/enums.py:76` +- UserTier: `nexla_sdk/models/enums.py:67` +- UsersResource: `nexla_sdk/resources/users.py:9` +- UsersResource.activate: `nexla_sdk/resources/base_resource.py:289` +- UsersResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- UsersResource.copy: `nexla_sdk/resources/base_resource.py:321` +- UsersResource.create: `nexla_sdk/resources/users.py:65` +- UsersResource.create_quarantine_settings: `nexla_sdk/resources/users.py:134` +- UsersResource.delete: `nexla_sdk/resources/users.py:93` +- UsersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- UsersResource.delete_quarantine_settings: `nexla_sdk/resources/users.py:168` +- UsersResource.get: `nexla_sdk/resources/users.py:43` +- UsersResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- UsersResource.get_account_metrics: `nexla_sdk/resources/users.py:258` +- UsersResource.get_audit_log: `nexla_sdk/resources/users.py:181` +- UsersResource.get_current: `nexla_sdk/resources/users.py:116` +- UsersResource.get_daily_metrics: `nexla_sdk/resources/users.py:339` +- UsersResource.get_dashboard_metrics: `nexla_sdk/resources/users.py:319` +- UsersResource.get_flow_status_metrics: `nexla_sdk/resources/users.py:290` +- UsersResource.get_quarantine_settings: `nexla_sdk/resources/users.py:121` +- UsersResource.get_settings: `nexla_sdk/resources/users.py:105` +- UsersResource.get_transferable_resources: `nexla_sdk/resources/users.py:225` +- UsersResource.list: `nexla_sdk/resources/users.py:17` +- UsersResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- UsersResource.pause: `nexla_sdk/resources/base_resource.py:305` +- UsersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- UsersResource.transfer_resources: `nexla_sdk/resources/users.py:240` +- UsersResource.update: `nexla_sdk/resources/users.py:80` +- UsersResource.update_quarantine_settings: `nexla_sdk/resources/users.py:152` +- ValidationError: `nexla_sdk/exceptions.py:94` +- ValidationError.get_error_summary: `nexla_sdk/exceptions.py:56` ### nexla_sdk.auth -- TokenAuthHandler: `nexla_sdk/auth.py:14` -- TokenAuthHandler.ensure_valid_token: `nexla_sdk/auth.py:145` -- TokenAuthHandler.execute_authenticated_request: `nexla_sdk/auth.py:191` -- TokenAuthHandler.get_access_token: `nexla_sdk/auth.py:69` -- TokenAuthHandler.logout: `nexla_sdk/auth.py:170` -- TokenAuthHandler.obtain_session_token: `nexla_sdk/auth.py:83` -- TokenAuthHandler.refresh_session_token: `nexla_sdk/auth.py:134` +- TokenAuthHandler: `nexla_sdk/auth.py:15` +- TokenAuthHandler.ensure_valid_token: `nexla_sdk/auth.py:154` +- TokenAuthHandler.execute_authenticated_request: `nexla_sdk/auth.py:202` +- TokenAuthHandler.get_access_token: `nexla_sdk/auth.py:72` +- TokenAuthHandler.logout: `nexla_sdk/auth.py:179` +- TokenAuthHandler.obtain_session_token: `nexla_sdk/auth.py:88` +- TokenAuthHandler.refresh_session_token: `nexla_sdk/auth.py:143` ### nexla_sdk.client -- NexlaClient: `nexla_sdk/client.py:44` -- NexlaClient.get_access_token: `nexla_sdk/client.py:179` -- NexlaClient.logout: `nexla_sdk/client.py:221` -- NexlaClient.refresh_access_token: `nexla_sdk/client.py:201` -- NexlaClient.request: `nexla_sdk/client.py:260` +- NexlaClient: `nexla_sdk/client.py:52` +- NexlaClient.create_webhook_client: `nexla_sdk/client.py:243` +- NexlaClient.get_access_token: `nexla_sdk/client.py:193` +- NexlaClient.logout: `nexla_sdk/client.py:235` +- NexlaClient.refresh_access_token: `nexla_sdk/client.py:215` +- NexlaClient.request: `nexla_sdk/client.py:316` ### nexla_sdk.exceptions -- AuthenticationError: `nexla_sdk/exceptions.py:70` -- AuthenticationError.get_error_summary: `nexla_sdk/exceptions.py:54` -- AuthorizationError: `nexla_sdk/exceptions.py:80` -- AuthorizationError.get_error_summary: `nexla_sdk/exceptions.py:54` -- CredentialError: `nexla_sdk/exceptions.py:113` -- CredentialError.get_error_summary: `nexla_sdk/exceptions.py:54` -- FlowError: `nexla_sdk/exceptions.py:125` -- FlowError.get_error_summary: `nexla_sdk/exceptions.py:54` +- AuthenticationError: `nexla_sdk/exceptions.py:72` +- AuthenticationError.get_error_summary: `nexla_sdk/exceptions.py:56` +- AuthorizationError: `nexla_sdk/exceptions.py:82` +- AuthorizationError.get_error_summary: `nexla_sdk/exceptions.py:56` +- CredentialError: `nexla_sdk/exceptions.py:120` +- CredentialError.get_error_summary: `nexla_sdk/exceptions.py:56` +- FlowError: `nexla_sdk/exceptions.py:132` +- FlowError.get_error_summary: `nexla_sdk/exceptions.py:56` - NexlaError: `nexla_sdk/exceptions.py:4` -- NexlaError.get_error_summary: `nexla_sdk/exceptions.py:54` -- NotFoundError: `nexla_sdk/exceptions.py:85` -- NotFoundError.get_error_summary: `nexla_sdk/exceptions.py:54` -- RateLimitError: `nexla_sdk/exceptions.py:95` -- RateLimitError.get_error_summary: `nexla_sdk/exceptions.py:54` -- ResourceConflictError: `nexla_sdk/exceptions.py:108` -- ResourceConflictError.get_error_summary: `nexla_sdk/exceptions.py:54` -- ServerError: `nexla_sdk/exceptions.py:103` -- ServerError.get_error_summary: `nexla_sdk/exceptions.py:54` -- TransformError: `nexla_sdk/exceptions.py:139` -- TransformError.get_error_summary: `nexla_sdk/exceptions.py:54` -- ValidationError: `nexla_sdk/exceptions.py:90` -- ValidationError.get_error_summary: `nexla_sdk/exceptions.py:54` +- NexlaError.get_error_summary: `nexla_sdk/exceptions.py:56` +- NotFoundError: `nexla_sdk/exceptions.py:88` +- NotFoundError.get_error_summary: `nexla_sdk/exceptions.py:56` +- RateLimitError: `nexla_sdk/exceptions.py:100` +- RateLimitError.get_error_summary: `nexla_sdk/exceptions.py:56` +- ResourceConflictError: `nexla_sdk/exceptions.py:114` +- ResourceConflictError.get_error_summary: `nexla_sdk/exceptions.py:56` +- ServerError: `nexla_sdk/exceptions.py:108` +- ServerError.get_error_summary: `nexla_sdk/exceptions.py:56` +- TransformError: `nexla_sdk/exceptions.py:152` +- TransformError.get_error_summary: `nexla_sdk/exceptions.py:56` +- ValidationError: `nexla_sdk/exceptions.py:94` +- ValidationError.get_error_summary: `nexla_sdk/exceptions.py:56` ### nexla_sdk.http_client -- HttpClientError: `nexla_sdk/http_client.py:60` -- HttpClientInterface: `nexla_sdk/http_client.py:34` -- HttpClientInterface.request: `nexla_sdk/http_client.py:40` -- RequestsHttpClient: `nexla_sdk/http_client.py:69` -- RequestsHttpClient.request: `nexla_sdk/http_client.py:98` -- inject(): `nexla_sdk/http_client.py:30` +- HttpClientError: `nexla_sdk/http_client.py:66` +- HttpClientInterface: `nexla_sdk/http_client.py:38` +- HttpClientInterface.request: `nexla_sdk/http_client.py:44` +- RequestsHttpClient: `nexla_sdk/http_client.py:82` +- RequestsHttpClient.request: `nexla_sdk/http_client.py:119` ### nexla_sdk.models - AccessRole: `nexla_sdk/models/enums.py:4` - AccessorType: `nexla_sdk/models/access/enums.py:4` -- AccessorsRequest: `nexla_sdk/models/access/requests.py:38` -- AccessorsRequest.to_dict: `nexla_sdk/models/base.py:40` -- AccessorsRequest.to_json: `nexla_sdk/models/base.py:52` -- AccountMetrics: `nexla_sdk/models/metrics/responses.py:5` -- AccountMetrics.to_dict: `nexla_sdk/models/base.py:40` -- AccountMetrics.to_json: `nexla_sdk/models/base.py:52` -- AccountSummary: `nexla_sdk/models/users/responses.py:42` -- AccountSummary.to_dict: `nexla_sdk/models/base.py:40` -- AccountSummary.to_json: `nexla_sdk/models/base.py:52` +- AccessorsRequest: `nexla_sdk/models/access/requests.py:49` +- AccessorsRequest.to_dict: `nexla_sdk/models/base.py:42` +- AccessorsRequest.to_json: `nexla_sdk/models/base.py:54` +- AccountMetrics: `nexla_sdk/models/metrics/responses.py:7` +- AccountMetrics.to_dict: `nexla_sdk/models/base.py:42` +- AccountMetrics.to_json: `nexla_sdk/models/base.py:54` +- AccountSummary: `nexla_sdk/models/users/responses.py:47` +- AccountSummary.to_dict: `nexla_sdk/models/base.py:42` +- AccountSummary.to_json: `nexla_sdk/models/base.py:54` - ActiveConfigView: `nexla_sdk/models/genai/responses.py:26` -- ActiveConfigView.to_dict: `nexla_sdk/models/base.py:40` -- ActiveConfigView.to_json: `nexla_sdk/models/base.py:52` +- ActiveConfigView.to_dict: `nexla_sdk/models/base.py:42` +- ActiveConfigView.to_json: `nexla_sdk/models/base.py:54` - ApprovalDecision: `nexla_sdk/models/approval_requests/requests.py:6` -- ApprovalDecision.to_dict: `nexla_sdk/models/base.py:40` -- ApprovalDecision.to_json: `nexla_sdk/models/base.py:52` +- ApprovalDecision.to_dict: `nexla_sdk/models/base.py:42` +- ApprovalDecision.to_json: `nexla_sdk/models/base.py:54` - ApprovalRequest: `nexla_sdk/models/approval_requests/responses.py:7` -- ApprovalRequest.to_dict: `nexla_sdk/models/base.py:40` -- ApprovalRequest.to_json: `nexla_sdk/models/base.py:52` +- ApprovalRequest.to_dict: `nexla_sdk/models/base.py:42` +- ApprovalRequest.to_json: `nexla_sdk/models/base.py:54` - AsyncTask: `nexla_sdk/models/async_tasks/responses.py:7` -- AsyncTask.to_dict: `nexla_sdk/models/base.py:40` -- AsyncTask.to_json: `nexla_sdk/models/base.py:52` +- AsyncTask.to_dict: `nexla_sdk/models/base.py:42` +- AsyncTask.to_json: `nexla_sdk/models/base.py:54` - AsyncTaskCreate: `nexla_sdk/models/async_tasks/requests.py:6` -- AsyncTaskCreate.to_dict: `nexla_sdk/models/base.py:40` -- AsyncTaskCreate.to_json: `nexla_sdk/models/base.py:52` +- AsyncTaskCreate.to_dict: `nexla_sdk/models/base.py:42` +- AsyncTaskCreate.to_json: `nexla_sdk/models/base.py:54` - AsyncTaskResult: `nexla_sdk/models/async_tasks/responses.py:19` -- AsyncTaskResult.to_dict: `nexla_sdk/models/base.py:40` -- AsyncTaskResult.to_json: `nexla_sdk/models/base.py:52` +- AsyncTaskResult.to_dict: `nexla_sdk/models/base.py:42` +- AsyncTaskResult.to_json: `nexla_sdk/models/base.py:54` - AttributeTransform: `nexla_sdk/models/attribute_transforms/responses.py:7` -- AttributeTransform.to_dict: `nexla_sdk/models/base.py:40` -- AttributeTransform.to_json: `nexla_sdk/models/base.py:52` +- AttributeTransform.to_dict: `nexla_sdk/models/base.py:42` +- AttributeTransform.to_json: `nexla_sdk/models/base.py:54` - AttributeTransformCreate: `nexla_sdk/models/attribute_transforms/requests.py:6` -- AttributeTransformCreate.to_dict: `nexla_sdk/models/base.py:40` -- AttributeTransformCreate.to_json: `nexla_sdk/models/base.py:52` +- AttributeTransformCreate.to_dict: `nexla_sdk/models/base.py:42` +- AttributeTransformCreate.to_json: `nexla_sdk/models/base.py:54` - AttributeTransformUpdate: `nexla_sdk/models/attribute_transforms/requests.py:21` -- AttributeTransformUpdate.to_dict: `nexla_sdk/models/base.py:40` -- AttributeTransformUpdate.to_json: `nexla_sdk/models/base.py:52` +- AttributeTransformUpdate.to_dict: `nexla_sdk/models/base.py:42` +- AttributeTransformUpdate.to_json: `nexla_sdk/models/base.py:54` - AuthConfig: `nexla_sdk/models/org_auth_configs/responses.py:7` -- AuthConfig.to_dict: `nexla_sdk/models/base.py:40` -- AuthConfig.to_json: `nexla_sdk/models/base.py:52` +- AuthConfig.to_dict: `nexla_sdk/models/base.py:42` +- AuthConfig.to_json: `nexla_sdk/models/base.py:54` - AuthConfigPayload: `nexla_sdk/models/org_auth_configs/requests.py:6` -- AuthConfigPayload.to_dict: `nexla_sdk/models/base.py:40` -- AuthConfigPayload.to_json: `nexla_sdk/models/base.py:52` -- BaseModel: `nexla_sdk/models/base.py:8` -- BaseModel.to_dict: `nexla_sdk/models/base.py:40` -- BaseModel.to_json: `nexla_sdk/models/base.py:52` +- AuthConfigPayload.to_dict: `nexla_sdk/models/base.py:42` +- AuthConfigPayload.to_json: `nexla_sdk/models/base.py:54` +- BaseModel: `nexla_sdk/models/base.py:10` +- BaseModel.to_dict: `nexla_sdk/models/base.py:42` +- BaseModel.to_json: `nexla_sdk/models/base.py:54` - BlockedDomain: `nexla_sdk/models/self_signup/responses.py:17` -- BlockedDomain.to_dict: `nexla_sdk/models/base.py:40` -- BlockedDomain.to_json: `nexla_sdk/models/base.py:52` +- BlockedDomain.to_dict: `nexla_sdk/models/base.py:42` +- BlockedDomain.to_json: `nexla_sdk/models/base.py:54` - CodeContainer: `nexla_sdk/models/code_containers/responses.py:12` -- CodeContainer.to_dict: `nexla_sdk/models/base.py:40` -- CodeContainer.to_json: `nexla_sdk/models/base.py:52` -- CodeContainerCreate: `nexla_sdk/models/code_containers/requests.py:7` -- CodeContainerCreate.to_dict: `nexla_sdk/models/base.py:40` -- CodeContainerCreate.to_json: `nexla_sdk/models/base.py:52` -- CodeContainerUpdate: `nexla_sdk/models/code_containers/requests.py:25` -- CodeContainerUpdate.to_dict: `nexla_sdk/models/base.py:40` -- CodeContainerUpdate.to_json: `nexla_sdk/models/base.py:52` -- Connector: `nexla_sdk/models/common.py:31` -- Connector.to_dict: `nexla_sdk/models/base.py:40` -- Connector.to_json: `nexla_sdk/models/base.py:52` -- ConnectorCategory: `nexla_sdk/models/enums.py:85` -- Credential: `nexla_sdk/models/credentials/responses.py:8` -- Credential.to_dict: `nexla_sdk/models/base.py:40` -- Credential.to_json: `nexla_sdk/models/base.py:52` -- CredentialCreate: `nexla_sdk/models/credentials/requests.py:5` -- CredentialCreate.to_dict: `nexla_sdk/models/base.py:40` -- CredentialCreate.to_json: `nexla_sdk/models/base.py:52` +- CodeContainer.to_dict: `nexla_sdk/models/base.py:42` +- CodeContainer.to_json: `nexla_sdk/models/base.py:54` +- CodeContainerCreate: `nexla_sdk/models/code_containers/requests.py:8` +- CodeContainerCreate.to_dict: `nexla_sdk/models/base.py:42` +- CodeContainerCreate.to_json: `nexla_sdk/models/base.py:54` +- CodeContainerUpdate: `nexla_sdk/models/code_containers/requests.py:26` +- CodeContainerUpdate.to_dict: `nexla_sdk/models/base.py:42` +- CodeContainerUpdate.to_json: `nexla_sdk/models/base.py:54` +- Connector: `nexla_sdk/models/common.py:34` +- Connector.to_dict: `nexla_sdk/models/base.py:42` +- Connector.to_json: `nexla_sdk/models/base.py:54` +- ConnectorCategory: `nexla_sdk/models/enums.py:93` +- Credential: `nexla_sdk/models/credentials/responses.py:10` +- Credential.to_dict: `nexla_sdk/models/base.py:42` +- Credential.to_json: `nexla_sdk/models/base.py:54` +- CredentialCreate: `nexla_sdk/models/credentials/requests.py:6` +- CredentialCreate.to_dict: `nexla_sdk/models/base.py:42` +- CredentialCreate.to_json: `nexla_sdk/models/base.py:54` - CredentialType: `nexla_sdk/models/credentials/enums.py:4` -- CredentialUpdate: `nexla_sdk/models/credentials/requests.py:20` -- CredentialUpdate.to_dict: `nexla_sdk/models/base.py:40` -- CredentialUpdate.to_json: `nexla_sdk/models/base.py:52` -- CustodianUser: `nexla_sdk/models/organizations/responses.py:68` -- CustodianUser.to_dict: `nexla_sdk/models/base.py:40` -- CustodianUser.to_json: `nexla_sdk/models/base.py:52` -- CustodiansPayload: `nexla_sdk/models/marketplace/requests.py:12` -- CustodiansPayload.to_dict: `nexla_sdk/models/base.py:40` -- CustodiansPayload.to_json: `nexla_sdk/models/base.py:52` -- DashboardMetrics: `nexla_sdk/models/metrics/responses.py:19` -- DashboardMetrics.to_dict: `nexla_sdk/models/base.py:40` -- DashboardMetrics.to_json: `nexla_sdk/models/base.py:52` -- DataMapInfo: `nexla_sdk/models/destinations/responses.py:22` -- DataMapInfo.to_dict: `nexla_sdk/models/base.py:40` -- DataMapInfo.to_json: `nexla_sdk/models/base.py:52` +- CredentialUpdate: `nexla_sdk/models/credentials/requests.py:22` +- CredentialUpdate.to_dict: `nexla_sdk/models/base.py:42` +- CredentialUpdate.to_json: `nexla_sdk/models/base.py:54` +- CustodianUser: `nexla_sdk/models/organizations/responses.py:74` +- CustodianUser.to_dict: `nexla_sdk/models/base.py:42` +- CustodianUser.to_json: `nexla_sdk/models/base.py:54` +- CustodiansPayload: `nexla_sdk/models/marketplace/requests.py:13` +- CustodiansPayload.to_dict: `nexla_sdk/models/base.py:42` +- CustodiansPayload.to_json: `nexla_sdk/models/base.py:54` +- DashboardMetrics: `nexla_sdk/models/metrics/responses.py:23` +- DashboardMetrics.to_dict: `nexla_sdk/models/base.py:42` +- DashboardMetrics.to_json: `nexla_sdk/models/base.py:54` +- DataMapInfo: `nexla_sdk/models/destinations/responses.py:25` +- DataMapInfo.to_dict: `nexla_sdk/models/base.py:42` +- DataMapInfo.to_json: `nexla_sdk/models/base.py:54` - DataSchema: `nexla_sdk/models/data_schemas/responses.py:6` -- DataSchema.to_dict: `nexla_sdk/models/base.py:40` -- DataSchema.to_json: `nexla_sdk/models/base.py:52` -- DataSetBrief: `nexla_sdk/models/sources/responses.py:9` -- DataSetBrief.to_dict: `nexla_sdk/models/base.py:40` -- DataSetBrief.to_json: `nexla_sdk/models/base.py:52` -- DataSetInfo: `nexla_sdk/models/destinations/responses.py:10` -- DataSetInfo.to_dict: `nexla_sdk/models/base.py:40` -- DataSetInfo.to_json: `nexla_sdk/models/base.py:52` -- DataSinkSimplified: `nexla_sdk/models/nexsets/responses.py:10` -- DataSinkSimplified.to_dict: `nexla_sdk/models/base.py:40` -- DataSinkSimplified.to_json: `nexla_sdk/models/base.py:52` -- DefaultOrg: `nexla_sdk/models/users/responses.py:7` -- DefaultOrg.to_dict: `nexla_sdk/models/base.py:40` -- DefaultOrg.to_json: `nexla_sdk/models/base.py:52` -- Destination: `nexla_sdk/models/destinations/responses.py:34` -- Destination.to_dict: `nexla_sdk/models/base.py:40` -- Destination.to_json: `nexla_sdk/models/base.py:52` -- DestinationCopyOptions: `nexla_sdk/models/destinations/requests.py:30` -- DestinationCopyOptions.to_dict: `nexla_sdk/models/base.py:40` -- DestinationCopyOptions.to_json: `nexla_sdk/models/base.py:52` -- DestinationCreate: `nexla_sdk/models/destinations/requests.py:5` -- DestinationCreate.to_dict: `nexla_sdk/models/base.py:40` -- DestinationCreate.to_json: `nexla_sdk/models/base.py:52` -- DestinationFormat: `nexla_sdk/models/destinations/enums.py:58` +- DataSchema.to_dict: `nexla_sdk/models/base.py:42` +- DataSchema.to_json: `nexla_sdk/models/base.py:54` +- DataSetBrief: `nexla_sdk/models/sources/responses.py:11` +- DataSetBrief.to_dict: `nexla_sdk/models/base.py:42` +- DataSetBrief.to_json: `nexla_sdk/models/base.py:54` +- DataSetInfo: `nexla_sdk/models/destinations/responses.py:12` +- DataSetInfo.to_dict: `nexla_sdk/models/base.py:42` +- DataSetInfo.to_json: `nexla_sdk/models/base.py:54` +- DataSinkSimplified: `nexla_sdk/models/nexsets/responses.py:12` +- DataSinkSimplified.to_dict: `nexla_sdk/models/base.py:42` +- DataSinkSimplified.to_json: `nexla_sdk/models/base.py:54` +- DefaultOrg: `nexla_sdk/models/users/responses.py:9` +- DefaultOrg.to_dict: `nexla_sdk/models/base.py:42` +- DefaultOrg.to_json: `nexla_sdk/models/base.py:54` +- Destination: `nexla_sdk/models/destinations/responses.py:38` +- Destination.to_dict: `nexla_sdk/models/base.py:42` +- Destination.to_json: `nexla_sdk/models/base.py:54` +- DestinationCopyOptions: `nexla_sdk/models/destinations/requests.py:33` +- DestinationCopyOptions.to_dict: `nexla_sdk/models/base.py:42` +- DestinationCopyOptions.to_json: `nexla_sdk/models/base.py:54` +- DestinationCreate: `nexla_sdk/models/destinations/requests.py:6` +- DestinationCreate.to_dict: `nexla_sdk/models/base.py:42` +- DestinationCreate.to_json: `nexla_sdk/models/base.py:54` +- DestinationFormat: `nexla_sdk/models/destinations/enums.py:89` - DestinationStatus: `nexla_sdk/models/destinations/enums.py:4` -- DestinationType: `nexla_sdk/models/destinations/enums.py:13` -- DestinationUpdate: `nexla_sdk/models/destinations/requests.py:21` -- DestinationUpdate.to_dict: `nexla_sdk/models/base.py:40` -- DestinationUpdate.to_json: `nexla_sdk/models/base.py:52` +- DestinationType: `nexla_sdk/models/destinations/enums.py:14` +- DestinationUpdate: `nexla_sdk/models/destinations/requests.py:23` +- DestinationUpdate.to_dict: `nexla_sdk/models/base.py:42` +- DestinationUpdate.to_json: `nexla_sdk/models/base.py:54` - DocContainer: `nexla_sdk/models/doc_containers/responses.py:6` -- DocContainer.to_dict: `nexla_sdk/models/base.py:40` -- DocContainer.to_json: `nexla_sdk/models/base.py:52` +- DocContainer.to_dict: `nexla_sdk/models/base.py:42` +- DocContainer.to_json: `nexla_sdk/models/base.py:54` +- DocsRecommendation: `nexla_sdk/models/flows/responses.py:152` +- DocsRecommendation.to_dict: `nexla_sdk/models/base.py:42` +- DocsRecommendation.to_json: `nexla_sdk/models/base.py:54` - DownloadLink: `nexla_sdk/models/async_tasks/responses.py:24` -- DownloadLink.to_dict: `nexla_sdk/models/base.py:40` -- DownloadLink.to_json: `nexla_sdk/models/base.py:52` -- FlowCopyOptions: `nexla_sdk/models/flows/requests.py:5` -- FlowCopyOptions.to_dict: `nexla_sdk/models/base.py:40` -- FlowCopyOptions.to_json: `nexla_sdk/models/base.py:52` -- FlowElements: `nexla_sdk/models/flows/responses.py:22` -- FlowElements.to_dict: `nexla_sdk/models/base.py:40` -- FlowElements.to_json: `nexla_sdk/models/base.py:52` -- FlowMetrics: `nexla_sdk/models/flows/responses.py:12` -- FlowMetrics.to_dict: `nexla_sdk/models/base.py:40` -- FlowMetrics.to_json: `nexla_sdk/models/base.py:52` -- FlowNode: `nexla_sdk/models/common.py:61` -- FlowNode.to_dict: `nexla_sdk/models/base.py:40` -- FlowNode.to_json: `nexla_sdk/models/base.py:52` -- FlowResponse: `nexla_sdk/models/flows/responses.py:35` -- FlowResponse.to_dict: `nexla_sdk/models/base.py:40` -- FlowResponse.to_json: `nexla_sdk/models/base.py:52` -- FlowType: `nexla_sdk/models/sources/enums.py:68` +- DownloadLink.to_dict: `nexla_sdk/models/base.py:42` +- DownloadLink.to_json: `nexla_sdk/models/base.py:54` +- FlowCopyOptions: `nexla_sdk/models/flows/requests.py:6` +- FlowCopyOptions.to_dict: `nexla_sdk/models/base.py:42` +- FlowCopyOptions.to_json: `nexla_sdk/models/base.py:54` +- FlowElements: `nexla_sdk/models/flows/responses.py:164` +- FlowElements.to_dict: `nexla_sdk/models/base.py:42` +- FlowElements.to_json: `nexla_sdk/models/base.py:54` +- FlowLogEntry: `nexla_sdk/models/flows/responses.py:25` +- FlowLogEntry.to_dict: `nexla_sdk/models/base.py:42` +- FlowLogEntry.to_json: `nexla_sdk/models/base.py:54` +- FlowLogsMeta: `nexla_sdk/models/flows/responses.py:53` +- FlowLogsMeta.to_dict: `nexla_sdk/models/base.py:42` +- FlowLogsMeta.to_json: `nexla_sdk/models/base.py:54` +- FlowLogsResponse: `nexla_sdk/models/flows/responses.py:82` +- FlowLogsResponse.to_dict: `nexla_sdk/models/base.py:42` +- FlowLogsResponse.to_json: `nexla_sdk/models/base.py:54` +- FlowMetricData: `nexla_sdk/models/flows/responses.py:113` +- FlowMetricData.to_dict: `nexla_sdk/models/base.py:42` +- FlowMetricData.to_json: `nexla_sdk/models/base.py:54` +- FlowMetrics: `nexla_sdk/models/flows/responses.py:14` +- FlowMetrics.to_dict: `nexla_sdk/models/base.py:42` +- FlowMetrics.to_json: `nexla_sdk/models/base.py:54` +- FlowMetricsApiResponse: `nexla_sdk/models/flows/responses.py:138` +- FlowMetricsApiResponse.to_dict: `nexla_sdk/models/base.py:42` +- FlowMetricsApiResponse.to_json: `nexla_sdk/models/base.py:54` +- FlowMetricsData: `nexla_sdk/models/flows/responses.py:131` +- FlowMetricsData.to_dict: `nexla_sdk/models/base.py:42` +- FlowMetricsData.to_json: `nexla_sdk/models/base.py:54` +- FlowMetricsMeta: `nexla_sdk/models/flows/responses.py:123` +- FlowMetricsMeta.to_dict: `nexla_sdk/models/base.py:42` +- FlowMetricsMeta.to_json: `nexla_sdk/models/base.py:54` +- FlowNode: `nexla_sdk/models/common.py:66` +- FlowNode.to_dict: `nexla_sdk/models/base.py:42` +- FlowNode.to_json: `nexla_sdk/models/base.py:54` +- FlowResponse: `nexla_sdk/models/flows/responses.py:178` +- FlowResponse.to_dict: `nexla_sdk/models/base.py:42` +- FlowResponse.to_json: `nexla_sdk/models/base.py:54` +- FlowType: `nexla_sdk/models/sources/enums.py:72` - GenAiConfig: `nexla_sdk/models/genai/responses.py:7` -- GenAiConfig.to_dict: `nexla_sdk/models/base.py:40` -- GenAiConfig.to_json: `nexla_sdk/models/base.py:52` +- GenAiConfig.to_dict: `nexla_sdk/models/base.py:42` +- GenAiConfig.to_json: `nexla_sdk/models/base.py:54` - GenAiConfigCreatePayload: `nexla_sdk/models/genai/requests.py:16` -- GenAiConfigCreatePayload.to_dict: `nexla_sdk/models/base.py:40` -- GenAiConfigCreatePayload.to_json: `nexla_sdk/models/base.py:52` +- GenAiConfigCreatePayload.to_dict: `nexla_sdk/models/base.py:42` +- GenAiConfigCreatePayload.to_json: `nexla_sdk/models/base.py:54` - GenAiConfigPayload: `nexla_sdk/models/genai/requests.py:6` -- GenAiConfigPayload.to_dict: `nexla_sdk/models/base.py:40` -- GenAiConfigPayload.to_json: `nexla_sdk/models/base.py:52` +- GenAiConfigPayload.to_dict: `nexla_sdk/models/base.py:42` +- GenAiConfigPayload.to_json: `nexla_sdk/models/base.py:54` - GenAiOrgSetting: `nexla_sdk/models/genai/responses.py:16` -- GenAiOrgSetting.to_dict: `nexla_sdk/models/base.py:40` -- GenAiOrgSetting.to_json: `nexla_sdk/models/base.py:52` +- GenAiOrgSetting.to_dict: `nexla_sdk/models/base.py:42` +- GenAiOrgSetting.to_json: `nexla_sdk/models/base.py:54` - GenAiOrgSettingPayload: `nexla_sdk/models/genai/requests.py:24` -- GenAiOrgSettingPayload.to_dict: `nexla_sdk/models/base.py:40` -- GenAiOrgSettingPayload.to_json: `nexla_sdk/models/base.py:52` -- IngestMethod: `nexla_sdk/models/sources/enums.py:59` -- LogEntry: `nexla_sdk/models/common.py:41` -- LogEntry.to_dict: `nexla_sdk/models/base.py:40` -- LogEntry.to_json: `nexla_sdk/models/base.py:52` -- Lookup: `nexla_sdk/models/lookups/responses.py:8` -- Lookup.to_dict: `nexla_sdk/models/base.py:40` -- Lookup.to_json: `nexla_sdk/models/base.py:52` -- LookupCreate: `nexla_sdk/models/lookups/requests.py:6` -- LookupCreate.to_dict: `nexla_sdk/models/base.py:40` -- LookupCreate.to_json: `nexla_sdk/models/base.py:52` -- LookupEntriesUpsert: `nexla_sdk/models/lookups/requests.py:28` -- LookupEntriesUpsert.to_dict: `nexla_sdk/models/base.py:40` -- LookupEntriesUpsert.to_json: `nexla_sdk/models/base.py:52` -- LookupUpdate: `nexla_sdk/models/lookups/requests.py:18` -- LookupUpdate.to_dict: `nexla_sdk/models/base.py:40` -- LookupUpdate.to_json: `nexla_sdk/models/base.py:52` -- MarketplaceDomain: `nexla_sdk/models/marketplace/responses.py:8` -- MarketplaceDomain.to_dict: `nexla_sdk/models/base.py:40` -- MarketplaceDomain.to_json: `nexla_sdk/models/base.py:52` -- MarketplaceDomainCreate: `nexla_sdk/models/marketplace/requests.py:16` -- MarketplaceDomainCreate.to_dict: `nexla_sdk/models/base.py:40` -- MarketplaceDomainCreate.to_json: `nexla_sdk/models/base.py:52` -- MarketplaceDomainsItem: `nexla_sdk/models/marketplace/responses.py:18` -- MarketplaceDomainsItem.to_dict: `nexla_sdk/models/base.py:40` -- MarketplaceDomainsItem.to_json: `nexla_sdk/models/base.py:52` -- MarketplaceDomainsItemCreate: `nexla_sdk/models/marketplace/requests.py:25` -- MarketplaceDomainsItemCreate.to_dict: `nexla_sdk/models/base.py:40` -- MarketplaceDomainsItemCreate.to_json: `nexla_sdk/models/base.py:52` -- MetricsByRunResponse: `nexla_sdk/models/metrics/responses.py:49` -- MetricsByRunResponse.to_dict: `nexla_sdk/models/base.py:40` -- MetricsByRunResponse.to_json: `nexla_sdk/models/base.py:52` -- MetricsResponse: `nexla_sdk/models/metrics/responses.py:43` -- MetricsResponse.to_dict: `nexla_sdk/models/base.py:40` -- MetricsResponse.to_json: `nexla_sdk/models/base.py:52` -- Nexset: `nexla_sdk/models/nexsets/responses.py:20` -- Nexset.to_dict: `nexla_sdk/models/base.py:40` -- Nexset.to_json: `nexla_sdk/models/base.py:52` -- NexsetCopyOptions: `nexla_sdk/models/nexsets/requests.py:41` -- NexsetCopyOptions.to_dict: `nexla_sdk/models/base.py:40` -- NexsetCopyOptions.to_json: `nexla_sdk/models/base.py:52` -- NexsetCreate: `nexla_sdk/models/nexsets/requests.py:7` -- NexsetCreate.to_dict: `nexla_sdk/models/base.py:40` -- NexsetCreate.to_json: `nexla_sdk/models/base.py:52` -- NexsetSample: `nexla_sdk/models/nexsets/responses.py:43` -- NexsetSample.to_dict: `nexla_sdk/models/base.py:40` -- NexsetSample.to_json: `nexla_sdk/models/base.py:52` +- GenAiOrgSettingPayload.to_dict: `nexla_sdk/models/base.py:42` +- GenAiOrgSettingPayload.to_json: `nexla_sdk/models/base.py:54` +- IngestMethod: `nexla_sdk/models/sources/enums.py:62` +- LogEntry: `nexla_sdk/models/common.py:45` +- LogEntry.to_dict: `nexla_sdk/models/base.py:42` +- LogEntry.to_json: `nexla_sdk/models/base.py:54` +- Lookup: `nexla_sdk/models/lookups/responses.py:10` +- Lookup.to_dict: `nexla_sdk/models/base.py:42` +- Lookup.to_json: `nexla_sdk/models/base.py:54` +- LookupCreate: `nexla_sdk/models/lookups/requests.py:8` +- LookupCreate.to_dict: `nexla_sdk/models/base.py:42` +- LookupCreate.to_json: `nexla_sdk/models/base.py:54` +- LookupEntriesUpsert: `nexla_sdk/models/lookups/requests.py:32` +- LookupEntriesUpsert.to_dict: `nexla_sdk/models/base.py:42` +- LookupEntriesUpsert.to_json: `nexla_sdk/models/base.py:54` +- LookupUpdate: `nexla_sdk/models/lookups/requests.py:21` +- LookupUpdate.to_dict: `nexla_sdk/models/base.py:42` +- LookupUpdate.to_json: `nexla_sdk/models/base.py:54` +- MarketplaceDomain: `nexla_sdk/models/marketplace/responses.py:7` +- MarketplaceDomain.to_dict: `nexla_sdk/models/base.py:42` +- MarketplaceDomain.to_json: `nexla_sdk/models/base.py:54` +- MarketplaceDomainCreate: `nexla_sdk/models/marketplace/requests.py:17` +- MarketplaceDomainCreate.to_dict: `nexla_sdk/models/base.py:42` +- MarketplaceDomainCreate.to_json: `nexla_sdk/models/base.py:54` +- MarketplaceDomainsItem: `nexla_sdk/models/marketplace/responses.py:17` +- MarketplaceDomainsItem.to_dict: `nexla_sdk/models/base.py:42` +- MarketplaceDomainsItem.to_json: `nexla_sdk/models/base.py:54` +- MarketplaceDomainsItemCreate: `nexla_sdk/models/marketplace/requests.py:26` +- MarketplaceDomainsItemCreate.to_dict: `nexla_sdk/models/base.py:42` +- MarketplaceDomainsItemCreate.to_json: `nexla_sdk/models/base.py:54` +- MetricsByRunResponse: `nexla_sdk/models/metrics/responses.py:57` +- MetricsByRunResponse.to_dict: `nexla_sdk/models/base.py:42` +- MetricsByRunResponse.to_json: `nexla_sdk/models/base.py:54` +- MetricsResponse: `nexla_sdk/models/metrics/responses.py:50` +- MetricsResponse.to_dict: `nexla_sdk/models/base.py:42` +- MetricsResponse.to_json: `nexla_sdk/models/base.py:54` +- Nexset: `nexla_sdk/models/nexsets/responses.py:23` +- Nexset.to_dict: `nexla_sdk/models/base.py:42` +- Nexset.to_json: `nexla_sdk/models/base.py:54` +- NexsetCopyOptions: `nexla_sdk/models/nexsets/requests.py:46` +- NexsetCopyOptions.to_dict: `nexla_sdk/models/base.py:42` +- NexsetCopyOptions.to_json: `nexla_sdk/models/base.py:54` +- NexsetCreate: `nexla_sdk/models/nexsets/requests.py:10` +- NexsetCreate.to_dict: `nexla_sdk/models/base.py:42` +- NexsetCreate.to_json: `nexla_sdk/models/base.py:54` +- NexsetSample: `nexla_sdk/models/nexsets/responses.py:47` +- NexsetSample.to_dict: `nexla_sdk/models/base.py:42` +- NexsetSample.to_json: `nexla_sdk/models/base.py:54` - NexsetStatus: `nexla_sdk/models/nexsets/enums.py:4` -- NexsetUpdate: `nexla_sdk/models/nexsets/requests.py:26` -- NexsetUpdate.to_dict: `nexla_sdk/models/base.py:40` -- NexsetUpdate.to_json: `nexla_sdk/models/base.py:52` -- Notification: `nexla_sdk/models/notifications/responses.py:8` -- Notification.to_dict: `nexla_sdk/models/base.py:40` -- Notification.to_json: `nexla_sdk/models/base.py:52` -- NotificationChannel: `nexla_sdk/models/enums.py:53` -- NotificationChannelSetting: `nexla_sdk/models/notifications/responses.py:37` -- NotificationChannelSetting.to_dict: `nexla_sdk/models/base.py:40` -- NotificationChannelSetting.to_json: `nexla_sdk/models/base.py:52` -- NotificationChannelSettingCreate: `nexla_sdk/models/notifications/requests.py:6` -- NotificationChannelSettingCreate.to_dict: `nexla_sdk/models/base.py:40` -- NotificationChannelSettingCreate.to_json: `nexla_sdk/models/base.py:52` -- NotificationChannelSettingUpdate: `nexla_sdk/models/notifications/requests.py:12` -- NotificationChannelSettingUpdate.to_dict: `nexla_sdk/models/base.py:40` -- NotificationChannelSettingUpdate.to_json: `nexla_sdk/models/base.py:52` -- NotificationCount: `nexla_sdk/models/notifications/responses.py:67` -- NotificationCount.to_dict: `nexla_sdk/models/base.py:40` -- NotificationCount.to_json: `nexla_sdk/models/base.py:52` -- NotificationLevel: `nexla_sdk/models/enums.py:43` -- NotificationSetting: `nexla_sdk/models/notifications/responses.py:46` -- NotificationSetting.to_dict: `nexla_sdk/models/base.py:40` -- NotificationSetting.to_json: `nexla_sdk/models/base.py:52` -- NotificationSettingCreate: `nexla_sdk/models/notifications/requests.py:18` -- NotificationSettingCreate.to_dict: `nexla_sdk/models/base.py:40` -- NotificationSettingCreate.to_json: `nexla_sdk/models/base.py:52` -- NotificationSettingUpdate: `nexla_sdk/models/notifications/requests.py:29` -- NotificationSettingUpdate.to_dict: `nexla_sdk/models/base.py:40` -- NotificationSettingUpdate.to_json: `nexla_sdk/models/base.py:52` -- NotificationType: `nexla_sdk/models/notifications/responses.py:25` -- NotificationType.to_dict: `nexla_sdk/models/base.py:40` -- NotificationType.to_json: `nexla_sdk/models/base.py:52` -- OrgAccessorRequest: `nexla_sdk/models/access/requests.py:25` -- OrgAccessorRequest.to_dict: `nexla_sdk/models/base.py:40` -- OrgAccessorRequest.to_json: `nexla_sdk/models/base.py:52` -- OrgAccessorResponse: `nexla_sdk/models/access/responses.py:30` -- OrgAccessorResponse.to_dict: `nexla_sdk/models/base.py:40` -- OrgAccessorResponse.to_json: `nexla_sdk/models/base.py:52` +- NexsetUpdate: `nexla_sdk/models/nexsets/requests.py:30` +- NexsetUpdate.to_dict: `nexla_sdk/models/base.py:42` +- NexsetUpdate.to_json: `nexla_sdk/models/base.py:54` +- Notification: `nexla_sdk/models/notifications/responses.py:10` +- Notification.to_dict: `nexla_sdk/models/base.py:42` +- Notification.to_json: `nexla_sdk/models/base.py:54` +- NotificationChannel: `nexla_sdk/models/enums.py:57` +- NotificationChannelSetting: `nexla_sdk/models/notifications/responses.py:41` +- NotificationChannelSetting.to_dict: `nexla_sdk/models/base.py:42` +- NotificationChannelSetting.to_json: `nexla_sdk/models/base.py:54` +- NotificationChannelSettingCreate: `nexla_sdk/models/notifications/requests.py:8` +- NotificationChannelSettingCreate.to_dict: `nexla_sdk/models/base.py:42` +- NotificationChannelSettingCreate.to_json: `nexla_sdk/models/base.py:54` +- NotificationChannelSettingUpdate: `nexla_sdk/models/notifications/requests.py:15` +- NotificationChannelSettingUpdate.to_dict: `nexla_sdk/models/base.py:42` +- NotificationChannelSettingUpdate.to_json: `nexla_sdk/models/base.py:54` +- NotificationCount: `nexla_sdk/models/notifications/responses.py:73` +- NotificationCount.to_dict: `nexla_sdk/models/base.py:42` +- NotificationCount.to_json: `nexla_sdk/models/base.py:54` +- NotificationLevel: `nexla_sdk/models/enums.py:46` +- NotificationSetting: `nexla_sdk/models/notifications/responses.py:51` +- NotificationSetting.to_dict: `nexla_sdk/models/base.py:42` +- NotificationSetting.to_json: `nexla_sdk/models/base.py:54` +- NotificationSettingCreate: `nexla_sdk/models/notifications/requests.py:22` +- NotificationSettingCreate.to_dict: `nexla_sdk/models/base.py:42` +- NotificationSettingCreate.to_json: `nexla_sdk/models/base.py:54` +- NotificationSettingUpdate: `nexla_sdk/models/notifications/requests.py:34` +- NotificationSettingUpdate.to_dict: `nexla_sdk/models/base.py:42` +- NotificationSettingUpdate.to_json: `nexla_sdk/models/base.py:54` +- NotificationType: `nexla_sdk/models/notifications/responses.py:28` +- NotificationType.to_dict: `nexla_sdk/models/base.py:42` +- NotificationType.to_json: `nexla_sdk/models/base.py:54` +- OrgAccessorRequest: `nexla_sdk/models/access/requests.py:31` +- OrgAccessorRequest.to_dict: `nexla_sdk/models/base.py:42` +- OrgAccessorRequest.to_json: `nexla_sdk/models/base.py:54` +- OrgAccessorResponse: `nexla_sdk/models/access/responses.py:36` +- OrgAccessorResponse.to_dict: `nexla_sdk/models/base.py:42` +- OrgAccessorResponse.to_json: `nexla_sdk/models/base.py:54` - OrgCustodianRef: `nexla_sdk/models/organizations/custodians.py:6` -- OrgCustodianRef.to_dict: `nexla_sdk/models/base.py:40` -- OrgCustodianRef.to_json: `nexla_sdk/models/base.py:52` -- OrgCustodiansPayload: `nexla_sdk/models/organizations/custodians.py:12` -- OrgCustodiansPayload.to_dict: `nexla_sdk/models/base.py:40` -- OrgCustodiansPayload.to_json: `nexla_sdk/models/base.py:52` -- OrgMember: `nexla_sdk/models/organizations/responses.py:49` -- OrgMember.to_dict: `nexla_sdk/models/base.py:40` -- OrgMember.to_json: `nexla_sdk/models/base.py:52` -- OrgMemberDelete: `nexla_sdk/models/organizations/requests.py:65` -- OrgMemberDelete.to_dict: `nexla_sdk/models/base.py:40` -- OrgMemberDelete.to_json: `nexla_sdk/models/base.py:52` -- OrgMemberList: `nexla_sdk/models/organizations/requests.py:53` -- OrgMemberList.to_dict: `nexla_sdk/models/base.py:40` -- OrgMemberList.to_json: `nexla_sdk/models/base.py:52` -- OrgMemberUpdate: `nexla_sdk/models/organizations/requests.py:44` -- OrgMemberUpdate.to_dict: `nexla_sdk/models/base.py:40` -- OrgMemberUpdate.to_json: `nexla_sdk/models/base.py:52` -- OrgMembership: `nexla_sdk/models/users/responses.py:13` -- OrgMembership.to_dict: `nexla_sdk/models/base.py:40` -- OrgMembership.to_json: `nexla_sdk/models/base.py:52` -- OrgMembershipStatus: `nexla_sdk/models/enums.py:79` -- OrgTier: `nexla_sdk/models/organizations/responses.py:8` -- OrgTier.to_dict: `nexla_sdk/models/base.py:40` -- OrgTier.to_json: `nexla_sdk/models/base.py:52` -- Organization: `nexla_sdk/models/common.py:14` -- Organization.to_dict: `nexla_sdk/models/base.py:40` -- Organization.to_json: `nexla_sdk/models/base.py:52` -- OrganizationUpdate: `nexla_sdk/models/organizations/requests.py:32` -- OrganizationUpdate.to_dict: `nexla_sdk/models/base.py:40` -- OrganizationUpdate.to_json: `nexla_sdk/models/base.py:52` -- OutputType: `nexla_sdk/models/nexsets/enums.py:23` -- Owner: `nexla_sdk/models/common.py:6` -- Owner.to_dict: `nexla_sdk/models/base.py:40` -- Owner.to_json: `nexla_sdk/models/base.py:52` -- ProbeSampleRequest: `nexla_sdk/models/credentials/requests.py:35` -- ProbeSampleRequest.to_dict: `nexla_sdk/models/base.py:40` -- ProbeSampleRequest.to_json: `nexla_sdk/models/base.py:52` -- ProbeSampleResponse: `nexla_sdk/models/credentials/responses.py:61` -- ProbeSampleResponse.to_dict: `nexla_sdk/models/base.py:40` -- ProbeSampleResponse.to_json: `nexla_sdk/models/base.py:52` -- ProbeTreeRequest: `nexla_sdk/models/credentials/requests.py:27` -- ProbeTreeRequest.to_dict: `nexla_sdk/models/base.py:40` -- ProbeTreeRequest.to_json: `nexla_sdk/models/base.py:52` -- ProbeTreeResponse: `nexla_sdk/models/credentials/responses.py:53` -- ProbeTreeResponse.to_dict: `nexla_sdk/models/base.py:40` -- ProbeTreeResponse.to_json: `nexla_sdk/models/base.py:52` -- Project: `nexla_sdk/models/projects/responses.py:21` -- Project.to_dict: `nexla_sdk/models/base.py:40` -- Project.to_json: `nexla_sdk/models/base.py:52` -- ProjectCreate: `nexla_sdk/models/projects/requests.py:12` -- ProjectCreate.to_dict: `nexla_sdk/models/base.py:40` -- ProjectCreate.to_json: `nexla_sdk/models/base.py:52` -- ProjectDataFlow: `nexla_sdk/models/projects/responses.py:8` -- ProjectDataFlow.to_dict: `nexla_sdk/models/base.py:40` -- ProjectDataFlow.to_json: `nexla_sdk/models/base.py:52` -- ProjectFlowIdentifier: `nexla_sdk/models/projects/requests.py:6` -- ProjectFlowIdentifier.to_dict: `nexla_sdk/models/base.py:40` -- ProjectFlowIdentifier.to_json: `nexla_sdk/models/base.py:52` -- ProjectFlowList: `nexla_sdk/models/projects/requests.py:26` -- ProjectFlowList.to_dict: `nexla_sdk/models/base.py:40` -- ProjectFlowList.to_json: `nexla_sdk/models/base.py:52` -- ProjectUpdate: `nexla_sdk/models/projects/requests.py:19` -- ProjectUpdate.to_dict: `nexla_sdk/models/base.py:40` -- ProjectUpdate.to_json: `nexla_sdk/models/base.py:52` -- ResourceMetricDaily: `nexla_sdk/models/metrics/responses.py:25` -- ResourceMetricDaily.to_dict: `nexla_sdk/models/base.py:40` -- ResourceMetricDaily.to_json: `nexla_sdk/models/base.py:52` -- ResourceMetricsByRun: `nexla_sdk/models/metrics/responses.py:33` -- ResourceMetricsByRun.to_dict: `nexla_sdk/models/base.py:40` -- ResourceMetricsByRun.to_json: `nexla_sdk/models/base.py:52` -- ResourceStatus: `nexla_sdk/models/enums.py:12` -- ResourceType: `nexla_sdk/models/enums.py:23` -- RunInfo: `nexla_sdk/models/sources/responses.py:21` -- RunInfo.to_dict: `nexla_sdk/models/base.py:40` -- RunInfo.to_json: `nexla_sdk/models/base.py:52` +- OrgCustodianRef.to_dict: `nexla_sdk/models/base.py:42` +- OrgCustodianRef.to_json: `nexla_sdk/models/base.py:54` +- OrgCustodiansPayload: `nexla_sdk/models/organizations/custodians.py:13` +- OrgCustodiansPayload.to_dict: `nexla_sdk/models/base.py:42` +- OrgCustodiansPayload.to_json: `nexla_sdk/models/base.py:54` +- OrgMember: `nexla_sdk/models/organizations/responses.py:53` +- OrgMember.to_dict: `nexla_sdk/models/base.py:42` +- OrgMember.to_json: `nexla_sdk/models/base.py:54` +- OrgMemberDelete: `nexla_sdk/models/organizations/requests.py:73` +- OrgMemberDelete.to_dict: `nexla_sdk/models/base.py:42` +- OrgMemberDelete.to_json: `nexla_sdk/models/base.py:54` +- OrgMemberList: `nexla_sdk/models/organizations/requests.py:59` +- OrgMemberList.to_dict: `nexla_sdk/models/base.py:42` +- OrgMemberList.to_json: `nexla_sdk/models/base.py:54` +- OrgMemberUpdate: `nexla_sdk/models/organizations/requests.py:49` +- OrgMemberUpdate.to_dict: `nexla_sdk/models/base.py:42` +- OrgMemberUpdate.to_json: `nexla_sdk/models/base.py:54` +- OrgMembership: `nexla_sdk/models/users/responses.py:16` +- OrgMembership.to_dict: `nexla_sdk/models/base.py:42` +- OrgMembership.to_json: `nexla_sdk/models/base.py:54` +- OrgMembershipStatus: `nexla_sdk/models/enums.py:86` +- OrgTier: `nexla_sdk/models/organizations/responses.py:10` +- OrgTier.to_dict: `nexla_sdk/models/base.py:42` +- OrgTier.to_json: `nexla_sdk/models/base.py:54` +- Organization: `nexla_sdk/models/common.py:16` +- Organization.to_dict: `nexla_sdk/models/base.py:42` +- Organization.to_json: `nexla_sdk/models/base.py:54` +- OrganizationUpdate: `nexla_sdk/models/organizations/requests.py:36` +- OrganizationUpdate.to_dict: `nexla_sdk/models/base.py:42` +- OrganizationUpdate.to_json: `nexla_sdk/models/base.py:54` +- OutputType: `nexla_sdk/models/nexsets/enums.py:25` +- Owner: `nexla_sdk/models/common.py:7` +- Owner.to_dict: `nexla_sdk/models/base.py:42` +- Owner.to_json: `nexla_sdk/models/base.py:54` +- ProbeSampleRequest: `nexla_sdk/models/credentials/requests.py:39` +- ProbeSampleRequest.to_dict: `nexla_sdk/models/base.py:42` +- ProbeSampleRequest.to_json: `nexla_sdk/models/base.py:54` +- ProbeSampleResponse: `nexla_sdk/models/credentials/responses.py:65` +- ProbeSampleResponse.to_dict: `nexla_sdk/models/base.py:42` +- ProbeSampleResponse.to_json: `nexla_sdk/models/base.py:54` +- ProbeTreeRequest: `nexla_sdk/models/credentials/requests.py:30` +- ProbeTreeRequest.to_dict: `nexla_sdk/models/base.py:42` +- ProbeTreeRequest.to_json: `nexla_sdk/models/base.py:54` +- ProbeTreeResponse: `nexla_sdk/models/credentials/responses.py:56` +- ProbeTreeResponse.to_dict: `nexla_sdk/models/base.py:42` +- ProbeTreeResponse.to_json: `nexla_sdk/models/base.py:54` +- Project: `nexla_sdk/models/projects/responses.py:24` +- Project.to_dict: `nexla_sdk/models/base.py:42` +- Project.to_json: `nexla_sdk/models/base.py:54` +- ProjectCreate: `nexla_sdk/models/projects/requests.py:15` +- ProjectCreate.to_dict: `nexla_sdk/models/base.py:42` +- ProjectCreate.to_json: `nexla_sdk/models/base.py:54` +- ProjectDataFlow: `nexla_sdk/models/projects/responses.py:10` +- ProjectDataFlow.to_dict: `nexla_sdk/models/base.py:42` +- ProjectDataFlow.to_json: `nexla_sdk/models/base.py:54` +- ProjectFlowIdentifier: `nexla_sdk/models/projects/requests.py:8` +- ProjectFlowIdentifier.to_dict: `nexla_sdk/models/base.py:42` +- ProjectFlowIdentifier.to_json: `nexla_sdk/models/base.py:54` +- ProjectFlowList: `nexla_sdk/models/projects/requests.py:31` +- ProjectFlowList.to_dict: `nexla_sdk/models/base.py:42` +- ProjectFlowList.to_json: `nexla_sdk/models/base.py:54` +- ProjectUpdate: `nexla_sdk/models/projects/requests.py:23` +- ProjectUpdate.to_dict: `nexla_sdk/models/base.py:42` +- ProjectUpdate.to_json: `nexla_sdk/models/base.py:54` +- ResourceFlowLogsResponse: `nexla_sdk/models/metrics/responses.py:68` +- ResourceFlowLogsResponse.to_dict: `nexla_sdk/models/base.py:42` +- ResourceFlowLogsResponse.to_json: `nexla_sdk/models/base.py:54` +- ResourceFlowMetricsResponse: `nexla_sdk/models/metrics/responses.py:64` +- ResourceFlowMetricsResponse.to_dict: `nexla_sdk/models/base.py:42` +- ResourceFlowMetricsResponse.to_json: `nexla_sdk/models/base.py:54` +- ResourceMetricDaily: `nexla_sdk/models/metrics/responses.py:30` +- ResourceMetricDaily.to_dict: `nexla_sdk/models/base.py:42` +- ResourceMetricDaily.to_json: `nexla_sdk/models/base.py:54` +- ResourceMetricsByRun: `nexla_sdk/models/metrics/responses.py:39` +- ResourceMetricsByRun.to_dict: `nexla_sdk/models/base.py:42` +- ResourceMetricsByRun.to_json: `nexla_sdk/models/base.py:54` +- ResourceStatus: `nexla_sdk/models/enums.py:13` +- ResourceType: `nexla_sdk/models/enums.py:25` +- RunInfo: `nexla_sdk/models/sources/responses.py:24` +- RunInfo.to_dict: `nexla_sdk/models/base.py:42` +- RunInfo.to_json: `nexla_sdk/models/base.py:54` - Runtime: `nexla_sdk/models/runtimes/responses.py:7` -- Runtime.to_dict: `nexla_sdk/models/base.py:40` -- Runtime.to_json: `nexla_sdk/models/base.py:52` +- Runtime.to_dict: `nexla_sdk/models/base.py:42` +- Runtime.to_json: `nexla_sdk/models/base.py:54` - RuntimeCreate: `nexla_sdk/models/runtimes/requests.py:6` -- RuntimeCreate.to_dict: `nexla_sdk/models/base.py:40` -- RuntimeCreate.to_json: `nexla_sdk/models/base.py:52` -- RuntimeUpdate: `nexla_sdk/models/runtimes/requests.py:16` -- RuntimeUpdate.to_dict: `nexla_sdk/models/base.py:40` -- RuntimeUpdate.to_json: `nexla_sdk/models/base.py:52` +- RuntimeCreate.to_dict: `nexla_sdk/models/base.py:42` +- RuntimeCreate.to_json: `nexla_sdk/models/base.py:54` +- RuntimeUpdate: `nexla_sdk/models/runtimes/requests.py:17` +- RuntimeUpdate.to_dict: `nexla_sdk/models/base.py:42` +- RuntimeUpdate.to_json: `nexla_sdk/models/base.py:54` - SelfSignupRequest: `nexla_sdk/models/self_signup/responses.py:7` -- SelfSignupRequest.to_dict: `nexla_sdk/models/base.py:40` -- SelfSignupRequest.to_json: `nexla_sdk/models/base.py:52` -- Source: `nexla_sdk/models/sources/responses.py:27` -- Source.to_dict: `nexla_sdk/models/base.py:40` -- Source.to_json: `nexla_sdk/models/base.py:52` -- SourceCopyOptions: `nexla_sdk/models/sources/requests.py:30` -- SourceCopyOptions.to_dict: `nexla_sdk/models/base.py:40` -- SourceCopyOptions.to_json: `nexla_sdk/models/base.py:52` -- SourceCreate: `nexla_sdk/models/sources/requests.py:6` -- SourceCreate.to_dict: `nexla_sdk/models/base.py:40` -- SourceCreate.to_json: `nexla_sdk/models/base.py:52` -- SourceStatus: `nexla_sdk/models/sources/enums.py:5` -- SourceType: `nexla_sdk/models/sources/enums.py:14` -- SourceUpdate: `nexla_sdk/models/sources/requests.py:22` -- SourceUpdate.to_dict: `nexla_sdk/models/base.py:40` -- SourceUpdate.to_json: `nexla_sdk/models/base.py:52` -- Team: `nexla_sdk/models/teams/responses.py:15` -- Team.to_dict: `nexla_sdk/models/base.py:40` -- Team.to_json: `nexla_sdk/models/base.py:52` -- TeamAccessorRequest: `nexla_sdk/models/access/requests.py:17` -- TeamAccessorRequest.to_dict: `nexla_sdk/models/base.py:40` -- TeamAccessorRequest.to_json: `nexla_sdk/models/base.py:52` -- TeamAccessorResponse: `nexla_sdk/models/access/responses.py:20` -- TeamAccessorResponse.to_dict: `nexla_sdk/models/base.py:40` -- TeamAccessorResponse.to_json: `nexla_sdk/models/base.py:52` -- TeamCreate: `nexla_sdk/models/teams/requests.py:14` -- TeamCreate.to_dict: `nexla_sdk/models/base.py:40` -- TeamCreate.to_json: `nexla_sdk/models/base.py:52` -- TeamMember: `nexla_sdk/models/teams/responses.py:8` -- TeamMember.to_dict: `nexla_sdk/models/base.py:40` -- TeamMember.to_json: `nexla_sdk/models/base.py:52` -- TeamMemberList: `nexla_sdk/models/teams/requests.py:28` -- TeamMemberList.to_dict: `nexla_sdk/models/base.py:40` -- TeamMemberList.to_json: `nexla_sdk/models/base.py:52` -- TeamMemberRequest: `nexla_sdk/models/teams/requests.py:6` -- TeamMemberRequest.to_dict: `nexla_sdk/models/base.py:40` -- TeamMemberRequest.to_json: `nexla_sdk/models/base.py:52` -- TeamUpdate: `nexla_sdk/models/teams/requests.py:21` -- TeamUpdate.to_dict: `nexla_sdk/models/base.py:40` -- TeamUpdate.to_json: `nexla_sdk/models/base.py:52` +- SelfSignupRequest.to_dict: `nexla_sdk/models/base.py:42` +- SelfSignupRequest.to_json: `nexla_sdk/models/base.py:54` +- Source: `nexla_sdk/models/sources/responses.py:31` +- Source.to_dict: `nexla_sdk/models/base.py:42` +- Source.to_json: `nexla_sdk/models/base.py:54` +- SourceCopyOptions: `nexla_sdk/models/sources/requests.py:34` +- SourceCopyOptions.to_dict: `nexla_sdk/models/base.py:42` +- SourceCopyOptions.to_json: `nexla_sdk/models/base.py:54` +- SourceCreate: `nexla_sdk/models/sources/requests.py:8` +- SourceCreate.to_dict: `nexla_sdk/models/base.py:42` +- SourceCreate.to_json: `nexla_sdk/models/base.py:54` +- SourceStatus: `nexla_sdk/models/sources/enums.py:6` +- SourceType: `nexla_sdk/models/sources/enums.py:16` +- SourceUpdate: `nexla_sdk/models/sources/requests.py:25` +- SourceUpdate.to_dict: `nexla_sdk/models/base.py:42` +- SourceUpdate.to_json: `nexla_sdk/models/base.py:54` +- Team: `nexla_sdk/models/teams/responses.py:18` +- Team.to_dict: `nexla_sdk/models/base.py:42` +- Team.to_json: `nexla_sdk/models/base.py:54` +- TeamAccessorRequest: `nexla_sdk/models/access/requests.py:22` +- TeamAccessorRequest.to_dict: `nexla_sdk/models/base.py:42` +- TeamAccessorRequest.to_json: `nexla_sdk/models/base.py:54` +- TeamAccessorResponse: `nexla_sdk/models/access/responses.py:25` +- TeamAccessorResponse.to_dict: `nexla_sdk/models/base.py:42` +- TeamAccessorResponse.to_json: `nexla_sdk/models/base.py:54` +- TeamCreate: `nexla_sdk/models/teams/requests.py:17` +- TeamCreate.to_dict: `nexla_sdk/models/base.py:42` +- TeamCreate.to_json: `nexla_sdk/models/base.py:54` +- TeamMember: `nexla_sdk/models/teams/responses.py:10` +- TeamMember.to_dict: `nexla_sdk/models/base.py:42` +- TeamMember.to_json: `nexla_sdk/models/base.py:54` +- TeamMemberList: `nexla_sdk/models/teams/requests.py:33` +- TeamMemberList.to_dict: `nexla_sdk/models/base.py:42` +- TeamMemberList.to_json: `nexla_sdk/models/base.py:54` +- TeamMemberRequest: `nexla_sdk/models/teams/requests.py:8` +- TeamMemberRequest.to_dict: `nexla_sdk/models/base.py:42` +- TeamMemberRequest.to_json: `nexla_sdk/models/base.py:54` +- TeamUpdate: `nexla_sdk/models/teams/requests.py:25` +- TeamUpdate.to_dict: `nexla_sdk/models/base.py:42` +- TeamUpdate.to_json: `nexla_sdk/models/base.py:54` - Transform: `nexla_sdk/models/transforms/responses.py:12` -- Transform.to_dict: `nexla_sdk/models/base.py:40` -- Transform.to_json: `nexla_sdk/models/base.py:52` -- TransformCreate: `nexla_sdk/models/transforms/requests.py:7` -- TransformCreate.to_dict: `nexla_sdk/models/base.py:40` -- TransformCreate.to_json: `nexla_sdk/models/base.py:52` -- TransformType: `nexla_sdk/models/nexsets/enums.py:14` -- TransformUpdate: `nexla_sdk/models/transforms/requests.py:22` -- TransformUpdate.to_dict: `nexla_sdk/models/base.py:40` -- TransformUpdate.to_json: `nexla_sdk/models/base.py:52` -- User: `nexla_sdk/models/users/responses.py:22` -- User.to_dict: `nexla_sdk/models/base.py:40` -- User.to_json: `nexla_sdk/models/base.py:52` -- UserAccessorRequest: `nexla_sdk/models/access/requests.py:8` -- UserAccessorRequest.to_dict: `nexla_sdk/models/base.py:40` -- UserAccessorRequest.to_json: `nexla_sdk/models/base.py:52` -- UserAccessorResponse: `nexla_sdk/models/access/responses.py:9` -- UserAccessorResponse.to_dict: `nexla_sdk/models/base.py:40` -- UserAccessorResponse.to_json: `nexla_sdk/models/base.py:52` -- UserCreate: `nexla_sdk/models/users/requests.py:6` -- UserCreate.to_dict: `nexla_sdk/models/base.py:40` -- UserCreate.to_json: `nexla_sdk/models/base.py:52` -- UserExpanded: `nexla_sdk/models/users/responses.py:50` -- UserExpanded.to_dict: `nexla_sdk/models/base.py:40` -- UserExpanded.to_json: `nexla_sdk/models/base.py:52` -- UserSettings: `nexla_sdk/models/users/responses.py:55` -- UserSettings.to_dict: `nexla_sdk/models/base.py:40` -- UserSettings.to_json: `nexla_sdk/models/base.py:52` -- UserStatus: `nexla_sdk/models/enums.py:70` -- UserTier: `nexla_sdk/models/enums.py:62` -- UserUpdate: `nexla_sdk/models/users/requests.py:19` -- UserUpdate.to_dict: `nexla_sdk/models/base.py:40` -- UserUpdate.to_json: `nexla_sdk/models/base.py:52` -- VerifiedStatus: `nexla_sdk/models/credentials/enums.py:60` +- Transform.to_dict: `nexla_sdk/models/base.py:42` +- Transform.to_json: `nexla_sdk/models/base.py:54` +- TransformCreate: `nexla_sdk/models/transforms/requests.py:8` +- TransformCreate.to_dict: `nexla_sdk/models/base.py:42` +- TransformCreate.to_json: `nexla_sdk/models/base.py:54` +- TransformType: `nexla_sdk/models/nexsets/enums.py:15` +- TransformUpdate: `nexla_sdk/models/transforms/requests.py:23` +- TransformUpdate.to_dict: `nexla_sdk/models/base.py:42` +- TransformUpdate.to_json: `nexla_sdk/models/base.py:54` +- User: `nexla_sdk/models/users/responses.py:26` +- User.to_dict: `nexla_sdk/models/base.py:42` +- User.to_json: `nexla_sdk/models/base.py:54` +- UserAccessorRequest: `nexla_sdk/models/access/requests.py:10` +- UserAccessorRequest.to_dict: `nexla_sdk/models/base.py:42` +- UserAccessorRequest.to_json: `nexla_sdk/models/base.py:54` +- UserAccessorResponse: `nexla_sdk/models/access/responses.py:11` +- UserAccessorResponse.to_dict: `nexla_sdk/models/base.py:42` +- UserAccessorResponse.to_json: `nexla_sdk/models/base.py:54` +- UserCreate: `nexla_sdk/models/users/requests.py:7` +- UserCreate.to_dict: `nexla_sdk/models/base.py:42` +- UserCreate.to_json: `nexla_sdk/models/base.py:54` +- UserExpanded: `nexla_sdk/models/users/responses.py:56` +- UserExpanded.to_dict: `nexla_sdk/models/base.py:42` +- UserExpanded.to_json: `nexla_sdk/models/base.py:54` +- UserSettings: `nexla_sdk/models/users/responses.py:62` +- UserSettings.to_dict: `nexla_sdk/models/base.py:42` +- UserSettings.to_json: `nexla_sdk/models/base.py:54` +- UserStatus: `nexla_sdk/models/enums.py:76` +- UserTier: `nexla_sdk/models/enums.py:67` +- UserUpdate: `nexla_sdk/models/users/requests.py:21` +- UserUpdate.to_dict: `nexla_sdk/models/base.py:42` +- UserUpdate.to_json: `nexla_sdk/models/base.py:54` +- VerifiedStatus: `nexla_sdk/models/credentials/enums.py:61` +- WebhookResponse: `nexla_sdk/models/webhooks/responses.py:8` +- WebhookResponse.to_dict: `nexla_sdk/models/base.py:42` +- WebhookResponse.to_json: `nexla_sdk/models/base.py:54` +- WebhookSendOptions: `nexla_sdk/models/webhooks/requests.py:8` +- WebhookSendOptions.to_dict: `nexla_sdk/models/base.py:42` +- WebhookSendOptions.to_json: `nexla_sdk/models/base.py:54` ### nexla_sdk.models.access - AccessorType: `nexla_sdk/models/access/enums.py:4` -- AccessorsRequest: `nexla_sdk/models/access/requests.py:38` -- OrgAccessorRequest: `nexla_sdk/models/access/requests.py:25` -- OrgAccessorResponse: `nexla_sdk/models/access/responses.py:30` -- TeamAccessorRequest: `nexla_sdk/models/access/requests.py:17` -- TeamAccessorResponse: `nexla_sdk/models/access/responses.py:20` -- UserAccessorRequest: `nexla_sdk/models/access/requests.py:8` -- UserAccessorResponse: `nexla_sdk/models/access/responses.py:9` +- AccessorsRequest: `nexla_sdk/models/access/requests.py:49` +- OrgAccessorRequest: `nexla_sdk/models/access/requests.py:31` +- OrgAccessorResponse: `nexla_sdk/models/access/responses.py:36` +- TeamAccessorRequest: `nexla_sdk/models/access/requests.py:22` +- TeamAccessorResponse: `nexla_sdk/models/access/responses.py:25` +- UserAccessorRequest: `nexla_sdk/models/access/requests.py:10` +- UserAccessorResponse: `nexla_sdk/models/access/responses.py:11` ### nexla_sdk.models.access.enums - AccessorType: `nexla_sdk/models/access/enums.py:4` ### nexla_sdk.models.access.requests -- AccessorsRequest: `nexla_sdk/models/access/requests.py:38` -- OrgAccessorRequest: `nexla_sdk/models/access/requests.py:25` -- TeamAccessorRequest: `nexla_sdk/models/access/requests.py:17` -- UserAccessorRequest: `nexla_sdk/models/access/requests.py:8` +- AccessorsRequest: `nexla_sdk/models/access/requests.py:49` +- OrgAccessorRequest: `nexla_sdk/models/access/requests.py:31` +- TeamAccessorRequest: `nexla_sdk/models/access/requests.py:22` +- UserAccessorRequest: `nexla_sdk/models/access/requests.py:10` ### nexla_sdk.models.access.responses -- OrgAccessorResponse: `nexla_sdk/models/access/responses.py:30` -- TeamAccessorResponse: `nexla_sdk/models/access/responses.py:20` -- UserAccessorResponse: `nexla_sdk/models/access/responses.py:9` +- OrgAccessorResponse: `nexla_sdk/models/access/responses.py:36` +- TeamAccessorResponse: `nexla_sdk/models/access/responses.py:25` +- UserAccessorResponse: `nexla_sdk/models/access/responses.py:11` ### nexla_sdk.models.approval_requests - ApprovalDecision: `nexla_sdk/models/approval_requests/requests.py:6` - ApprovalRequest: `nexla_sdk/models/approval_requests/responses.py:7` @@ -1048,98 +1094,114 @@ Each API page embeds per-symbol source links. Summary below. ### nexla_sdk.models.attribute_transforms.responses - AttributeTransform: `nexla_sdk/models/attribute_transforms/responses.py:7` ### nexla_sdk.models.base -- BaseModel: `nexla_sdk/models/base.py:8` -- BaseModel.to_dict: `nexla_sdk/models/base.py:40` -- BaseModel.to_json: `nexla_sdk/models/base.py:52` +- BaseModel: `nexla_sdk/models/base.py:10` +- BaseModel.to_dict: `nexla_sdk/models/base.py:42` +- BaseModel.to_json: `nexla_sdk/models/base.py:54` ### nexla_sdk.models.code_containers - CodeContainer: `nexla_sdk/models/code_containers/responses.py:12` -- CodeContainerCreate: `nexla_sdk/models/code_containers/requests.py:7` -- CodeContainerUpdate: `nexla_sdk/models/code_containers/requests.py:25` +- CodeContainerCreate: `nexla_sdk/models/code_containers/requests.py:8` +- CodeContainerUpdate: `nexla_sdk/models/code_containers/requests.py:26` ### nexla_sdk.models.code_containers.requests -- CodeContainerCreate: `nexla_sdk/models/code_containers/requests.py:7` -- CodeContainerUpdate: `nexla_sdk/models/code_containers/requests.py:25` +- CodeContainerCreate: `nexla_sdk/models/code_containers/requests.py:8` +- CodeContainerUpdate: `nexla_sdk/models/code_containers/requests.py:26` ### nexla_sdk.models.code_containers.responses - CodeContainer: `nexla_sdk/models/code_containers/responses.py:12` - CodeOperation: `nexla_sdk/models/code_containers/responses.py:7` ### nexla_sdk.models.common -- Connector: `nexla_sdk/models/common.py:31` -- FlowNode: `nexla_sdk/models/common.py:61` -- LogEntry: `nexla_sdk/models/common.py:41` -- Organization: `nexla_sdk/models/common.py:14` -- Owner: `nexla_sdk/models/common.py:6` +- Connector: `nexla_sdk/models/common.py:34` +- FlowNode: `nexla_sdk/models/common.py:66` +- LogEntry: `nexla_sdk/models/common.py:45` +- Organization: `nexla_sdk/models/common.py:16` +- Owner: `nexla_sdk/models/common.py:7` ### nexla_sdk.models.credentials -- Credential: `nexla_sdk/models/credentials/responses.py:8` -- CredentialCreate: `nexla_sdk/models/credentials/requests.py:5` +- Credential: `nexla_sdk/models/credentials/responses.py:10` +- CredentialCreate: `nexla_sdk/models/credentials/requests.py:6` - CredentialType: `nexla_sdk/models/credentials/enums.py:4` -- CredentialUpdate: `nexla_sdk/models/credentials/requests.py:20` -- ProbeSampleRequest: `nexla_sdk/models/credentials/requests.py:35` -- ProbeSampleResponse: `nexla_sdk/models/credentials/responses.py:61` -- ProbeTreeRequest: `nexla_sdk/models/credentials/requests.py:27` -- ProbeTreeResponse: `nexla_sdk/models/credentials/responses.py:53` -- VerifiedStatus: `nexla_sdk/models/credentials/enums.py:60` +- CredentialUpdate: `nexla_sdk/models/credentials/requests.py:22` +- ProbeSampleRequest: `nexla_sdk/models/credentials/requests.py:39` +- ProbeSampleResponse: `nexla_sdk/models/credentials/responses.py:65` +- ProbeTreeRequest: `nexla_sdk/models/credentials/requests.py:30` +- ProbeTreeResponse: `nexla_sdk/models/credentials/responses.py:56` +- VerifiedStatus: `nexla_sdk/models/credentials/enums.py:61` ### nexla_sdk.models.credentials.enums - CredentialType: `nexla_sdk/models/credentials/enums.py:4` -- VerifiedStatus: `nexla_sdk/models/credentials/enums.py:60` +- VerifiedStatus: `nexla_sdk/models/credentials/enums.py:61` ### nexla_sdk.models.credentials.requests -- CredentialCreate: `nexla_sdk/models/credentials/requests.py:5` -- CredentialUpdate: `nexla_sdk/models/credentials/requests.py:20` -- ProbeSampleRequest: `nexla_sdk/models/credentials/requests.py:35` -- ProbeTreeRequest: `nexla_sdk/models/credentials/requests.py:27` +- CredentialCreate: `nexla_sdk/models/credentials/requests.py:6` +- CredentialUpdate: `nexla_sdk/models/credentials/requests.py:22` +- ProbeSampleRequest: `nexla_sdk/models/credentials/requests.py:39` +- ProbeTreeRequest: `nexla_sdk/models/credentials/requests.py:30` ### nexla_sdk.models.credentials.responses -- Credential: `nexla_sdk/models/credentials/responses.py:8` -- ProbeSampleResponse: `nexla_sdk/models/credentials/responses.py:61` -- ProbeTreeResponse: `nexla_sdk/models/credentials/responses.py:53` +- Credential: `nexla_sdk/models/credentials/responses.py:10` +- ProbeSampleResponse: `nexla_sdk/models/credentials/responses.py:65` +- ProbeTreeResponse: `nexla_sdk/models/credentials/responses.py:56` ### nexla_sdk.models.data_schemas - DataSchema: `nexla_sdk/models/data_schemas/responses.py:6` ### nexla_sdk.models.data_schemas.responses - DataSchema: `nexla_sdk/models/data_schemas/responses.py:6` ### nexla_sdk.models.destinations -- DataMapInfo: `nexla_sdk/models/destinations/responses.py:22` -- DataSetInfo: `nexla_sdk/models/destinations/responses.py:10` -- Destination: `nexla_sdk/models/destinations/responses.py:34` -- DestinationCopyOptions: `nexla_sdk/models/destinations/requests.py:30` -- DestinationCreate: `nexla_sdk/models/destinations/requests.py:5` -- DestinationFormat: `nexla_sdk/models/destinations/enums.py:58` +- DataMapInfo: `nexla_sdk/models/destinations/responses.py:25` +- DataSetInfo: `nexla_sdk/models/destinations/responses.py:12` +- Destination: `nexla_sdk/models/destinations/responses.py:38` +- DestinationCopyOptions: `nexla_sdk/models/destinations/requests.py:33` +- DestinationCreate: `nexla_sdk/models/destinations/requests.py:6` +- DestinationFormat: `nexla_sdk/models/destinations/enums.py:89` - DestinationStatus: `nexla_sdk/models/destinations/enums.py:4` -- DestinationType: `nexla_sdk/models/destinations/enums.py:13` -- DestinationUpdate: `nexla_sdk/models/destinations/requests.py:21` +- DestinationType: `nexla_sdk/models/destinations/enums.py:14` +- DestinationUpdate: `nexla_sdk/models/destinations/requests.py:23` ### nexla_sdk.models.destinations.enums -- DestinationFormat: `nexla_sdk/models/destinations/enums.py:58` +- DestinationFormat: `nexla_sdk/models/destinations/enums.py:89` - DestinationStatus: `nexla_sdk/models/destinations/enums.py:4` -- DestinationType: `nexla_sdk/models/destinations/enums.py:13` +- DestinationType: `nexla_sdk/models/destinations/enums.py:14` ### nexla_sdk.models.destinations.requests -- DestinationCopyOptions: `nexla_sdk/models/destinations/requests.py:30` -- DestinationCreate: `nexla_sdk/models/destinations/requests.py:5` -- DestinationUpdate: `nexla_sdk/models/destinations/requests.py:21` +- DestinationCopyOptions: `nexla_sdk/models/destinations/requests.py:33` +- DestinationCreate: `nexla_sdk/models/destinations/requests.py:6` +- DestinationUpdate: `nexla_sdk/models/destinations/requests.py:23` ### nexla_sdk.models.destinations.responses -- DataMapInfo: `nexla_sdk/models/destinations/responses.py:22` -- DataSetInfo: `nexla_sdk/models/destinations/responses.py:10` -- Destination: `nexla_sdk/models/destinations/responses.py:34` +- DataMapInfo: `nexla_sdk/models/destinations/responses.py:25` +- DataSetInfo: `nexla_sdk/models/destinations/responses.py:12` +- Destination: `nexla_sdk/models/destinations/responses.py:38` ### nexla_sdk.models.doc_containers - DocContainer: `nexla_sdk/models/doc_containers/responses.py:6` ### nexla_sdk.models.doc_containers.responses - DocContainer: `nexla_sdk/models/doc_containers/responses.py:6` ### nexla_sdk.models.enums - AccessRole: `nexla_sdk/models/enums.py:4` -- ConnectorCategory: `nexla_sdk/models/enums.py:85` -- NotificationChannel: `nexla_sdk/models/enums.py:53` -- NotificationLevel: `nexla_sdk/models/enums.py:43` -- OrgMembershipStatus: `nexla_sdk/models/enums.py:79` -- ResourceStatus: `nexla_sdk/models/enums.py:12` -- ResourceType: `nexla_sdk/models/enums.py:23` -- UserStatus: `nexla_sdk/models/enums.py:70` -- UserTier: `nexla_sdk/models/enums.py:62` +- ConnectorCategory: `nexla_sdk/models/enums.py:93` +- NotificationChannel: `nexla_sdk/models/enums.py:57` +- NotificationLevel: `nexla_sdk/models/enums.py:46` +- OrgMembershipStatus: `nexla_sdk/models/enums.py:86` +- ResourceStatus: `nexla_sdk/models/enums.py:13` +- ResourceType: `nexla_sdk/models/enums.py:25` +- UserStatus: `nexla_sdk/models/enums.py:76` +- UserTier: `nexla_sdk/models/enums.py:67` ### nexla_sdk.models.flows -- FlowCopyOptions: `nexla_sdk/models/flows/requests.py:5` -- FlowElements: `nexla_sdk/models/flows/responses.py:22` -- FlowMetrics: `nexla_sdk/models/flows/responses.py:12` -- FlowResponse: `nexla_sdk/models/flows/responses.py:35` +- DocsRecommendation: `nexla_sdk/models/flows/responses.py:152` +- FlowCopyOptions: `nexla_sdk/models/flows/requests.py:6` +- FlowElements: `nexla_sdk/models/flows/responses.py:164` +- FlowLogEntry: `nexla_sdk/models/flows/responses.py:25` +- FlowLogsMeta: `nexla_sdk/models/flows/responses.py:53` +- FlowLogsResponse: `nexla_sdk/models/flows/responses.py:82` +- FlowMetricData: `nexla_sdk/models/flows/responses.py:113` +- FlowMetrics: `nexla_sdk/models/flows/responses.py:14` +- FlowMetricsApiResponse: `nexla_sdk/models/flows/responses.py:138` +- FlowMetricsData: `nexla_sdk/models/flows/responses.py:131` +- FlowMetricsMeta: `nexla_sdk/models/flows/responses.py:123` +- FlowResponse: `nexla_sdk/models/flows/responses.py:178` ### nexla_sdk.models.flows.requests -- FlowCopyOptions: `nexla_sdk/models/flows/requests.py:5` +- FlowCopyOptions: `nexla_sdk/models/flows/requests.py:6` ### nexla_sdk.models.flows.responses -- FlowElements: `nexla_sdk/models/flows/responses.py:22` -- FlowMetrics: `nexla_sdk/models/flows/responses.py:12` -- FlowResponse: `nexla_sdk/models/flows/responses.py:35` +- DocsRecommendation: `nexla_sdk/models/flows/responses.py:152` +- FlowElements: `nexla_sdk/models/flows/responses.py:164` +- FlowLogEntry: `nexla_sdk/models/flows/responses.py:25` +- FlowLogsMeta: `nexla_sdk/models/flows/responses.py:53` +- FlowLogsResponse: `nexla_sdk/models/flows/responses.py:82` +- FlowMetricData: `nexla_sdk/models/flows/responses.py:113` +- FlowMetrics: `nexla_sdk/models/flows/responses.py:14` +- FlowMetricsApiResponse: `nexla_sdk/models/flows/responses.py:138` +- FlowMetricsData: `nexla_sdk/models/flows/responses.py:131` +- FlowMetricsMeta: `nexla_sdk/models/flows/responses.py:123` +- FlowResponse: `nexla_sdk/models/flows/responses.py:178` ### nexla_sdk.models.genai - ActiveConfigView: `nexla_sdk/models/genai/responses.py:26` - GenAiConfig: `nexla_sdk/models/genai/responses.py:7` @@ -1156,94 +1218,98 @@ Each API page embeds per-symbol source links. Summary below. - GenAiConfig: `nexla_sdk/models/genai/responses.py:7` - GenAiOrgSetting: `nexla_sdk/models/genai/responses.py:16` ### nexla_sdk.models.lookups -- Lookup: `nexla_sdk/models/lookups/responses.py:8` -- LookupCreate: `nexla_sdk/models/lookups/requests.py:6` -- LookupEntriesUpsert: `nexla_sdk/models/lookups/requests.py:28` -- LookupUpdate: `nexla_sdk/models/lookups/requests.py:18` +- Lookup: `nexla_sdk/models/lookups/responses.py:10` +- LookupCreate: `nexla_sdk/models/lookups/requests.py:8` +- LookupEntriesUpsert: `nexla_sdk/models/lookups/requests.py:32` +- LookupUpdate: `nexla_sdk/models/lookups/requests.py:21` ### nexla_sdk.models.lookups.requests -- LookupCreate: `nexla_sdk/models/lookups/requests.py:6` -- LookupEntriesUpsert: `nexla_sdk/models/lookups/requests.py:28` -- LookupUpdate: `nexla_sdk/models/lookups/requests.py:18` +- LookupCreate: `nexla_sdk/models/lookups/requests.py:8` +- LookupEntriesUpsert: `nexla_sdk/models/lookups/requests.py:32` +- LookupUpdate: `nexla_sdk/models/lookups/requests.py:21` ### nexla_sdk.models.lookups.responses -- Lookup: `nexla_sdk/models/lookups/responses.py:8` +- Lookup: `nexla_sdk/models/lookups/responses.py:10` ### nexla_sdk.models.marketplace - CustodianRef: `nexla_sdk/models/marketplace/requests.py:6` -- CustodiansPayload: `nexla_sdk/models/marketplace/requests.py:12` -- MarketplaceDomain: `nexla_sdk/models/marketplace/responses.py:8` -- MarketplaceDomainCreate: `nexla_sdk/models/marketplace/requests.py:16` -- MarketplaceDomainsItem: `nexla_sdk/models/marketplace/responses.py:18` -- MarketplaceDomainsItemCreate: `nexla_sdk/models/marketplace/requests.py:25` +- CustodiansPayload: `nexla_sdk/models/marketplace/requests.py:13` +- MarketplaceDomain: `nexla_sdk/models/marketplace/responses.py:7` +- MarketplaceDomainCreate: `nexla_sdk/models/marketplace/requests.py:17` +- MarketplaceDomainsItem: `nexla_sdk/models/marketplace/responses.py:17` +- MarketplaceDomainsItemCreate: `nexla_sdk/models/marketplace/requests.py:26` ### nexla_sdk.models.marketplace.requests - CustodianRef: `nexla_sdk/models/marketplace/requests.py:6` -- CustodiansPayload: `nexla_sdk/models/marketplace/requests.py:12` -- MarketplaceDomainCreate: `nexla_sdk/models/marketplace/requests.py:16` -- MarketplaceDomainsItemCreate: `nexla_sdk/models/marketplace/requests.py:25` +- CustodiansPayload: `nexla_sdk/models/marketplace/requests.py:13` +- MarketplaceDomainCreate: `nexla_sdk/models/marketplace/requests.py:17` +- MarketplaceDomainsItemCreate: `nexla_sdk/models/marketplace/requests.py:26` ### nexla_sdk.models.marketplace.responses -- MarketplaceDomain: `nexla_sdk/models/marketplace/responses.py:8` -- MarketplaceDomainsItem: `nexla_sdk/models/marketplace/responses.py:18` +- MarketplaceDomain: `nexla_sdk/models/marketplace/responses.py:7` +- MarketplaceDomainsItem: `nexla_sdk/models/marketplace/responses.py:17` ### nexla_sdk.models.metrics -- AccountMetrics: `nexla_sdk/models/metrics/responses.py:5` -- DashboardMetrics: `nexla_sdk/models/metrics/responses.py:19` -- MetricsByRunResponse: `nexla_sdk/models/metrics/responses.py:49` -- MetricsResponse: `nexla_sdk/models/metrics/responses.py:43` -- ResourceMetricDaily: `nexla_sdk/models/metrics/responses.py:25` -- ResourceMetricsByRun: `nexla_sdk/models/metrics/responses.py:33` +- AccountMetrics: `nexla_sdk/models/metrics/responses.py:7` +- DashboardMetrics: `nexla_sdk/models/metrics/responses.py:23` +- MetricsByRunResponse: `nexla_sdk/models/metrics/responses.py:57` +- MetricsResponse: `nexla_sdk/models/metrics/responses.py:50` +- ResourceFlowLogsResponse: `nexla_sdk/models/metrics/responses.py:68` +- ResourceFlowMetricsResponse: `nexla_sdk/models/metrics/responses.py:64` +- ResourceMetricDaily: `nexla_sdk/models/metrics/responses.py:30` +- ResourceMetricsByRun: `nexla_sdk/models/metrics/responses.py:39` - ResourceType: `nexla_sdk/models/metrics/enums.py:4` -- UserMetricResourceType: `nexla_sdk/models/metrics/enums.py:12` +- UserMetricResourceType: `nexla_sdk/models/metrics/enums.py:13` ### nexla_sdk.models.metrics.enums - ResourceType: `nexla_sdk/models/metrics/enums.py:4` -- UserMetricResourceType: `nexla_sdk/models/metrics/enums.py:12` +- UserMetricResourceType: `nexla_sdk/models/metrics/enums.py:13` ### nexla_sdk.models.metrics.responses -- AccountMetrics: `nexla_sdk/models/metrics/responses.py:5` -- DashboardMetricSet: `nexla_sdk/models/metrics/responses.py:11` -- DashboardMetrics: `nexla_sdk/models/metrics/responses.py:19` -- MetricsByRunResponse: `nexla_sdk/models/metrics/responses.py:49` -- MetricsResponse: `nexla_sdk/models/metrics/responses.py:43` -- ResourceMetricDaily: `nexla_sdk/models/metrics/responses.py:25` -- ResourceMetricsByRun: `nexla_sdk/models/metrics/responses.py:33` +- AccountMetrics: `nexla_sdk/models/metrics/responses.py:7` +- DashboardMetricSet: `nexla_sdk/models/metrics/responses.py:14` +- DashboardMetrics: `nexla_sdk/models/metrics/responses.py:23` +- MetricsByRunResponse: `nexla_sdk/models/metrics/responses.py:57` +- MetricsResponse: `nexla_sdk/models/metrics/responses.py:50` +- ResourceFlowLogsResponse: `nexla_sdk/models/metrics/responses.py:68` +- ResourceFlowMetricsResponse: `nexla_sdk/models/metrics/responses.py:64` +- ResourceMetricDaily: `nexla_sdk/models/metrics/responses.py:30` +- ResourceMetricsByRun: `nexla_sdk/models/metrics/responses.py:39` ### nexla_sdk.models.nexsets -- DataSinkSimplified: `nexla_sdk/models/nexsets/responses.py:10` -- Nexset: `nexla_sdk/models/nexsets/responses.py:20` -- NexsetCopyOptions: `nexla_sdk/models/nexsets/requests.py:41` -- NexsetCreate: `nexla_sdk/models/nexsets/requests.py:7` -- NexsetSample: `nexla_sdk/models/nexsets/responses.py:43` +- DataSinkSimplified: `nexla_sdk/models/nexsets/responses.py:12` +- Nexset: `nexla_sdk/models/nexsets/responses.py:23` +- NexsetCopyOptions: `nexla_sdk/models/nexsets/requests.py:46` +- NexsetCreate: `nexla_sdk/models/nexsets/requests.py:10` +- NexsetSample: `nexla_sdk/models/nexsets/responses.py:47` - NexsetStatus: `nexla_sdk/models/nexsets/enums.py:4` -- NexsetUpdate: `nexla_sdk/models/nexsets/requests.py:26` -- OutputType: `nexla_sdk/models/nexsets/enums.py:23` -- TransformType: `nexla_sdk/models/nexsets/enums.py:14` +- NexsetUpdate: `nexla_sdk/models/nexsets/requests.py:30` +- OutputType: `nexla_sdk/models/nexsets/enums.py:25` +- TransformType: `nexla_sdk/models/nexsets/enums.py:15` ### nexla_sdk.models.nexsets.enums - NexsetStatus: `nexla_sdk/models/nexsets/enums.py:4` -- OutputType: `nexla_sdk/models/nexsets/enums.py:23` -- TransformType: `nexla_sdk/models/nexsets/enums.py:14` +- OutputType: `nexla_sdk/models/nexsets/enums.py:25` +- TransformType: `nexla_sdk/models/nexsets/enums.py:15` ### nexla_sdk.models.nexsets.requests -- NexsetCopyOptions: `nexla_sdk/models/nexsets/requests.py:41` -- NexsetCreate: `nexla_sdk/models/nexsets/requests.py:7` -- NexsetUpdate: `nexla_sdk/models/nexsets/requests.py:26` +- NexsetCopyOptions: `nexla_sdk/models/nexsets/requests.py:46` +- NexsetCreate: `nexla_sdk/models/nexsets/requests.py:10` +- NexsetUpdate: `nexla_sdk/models/nexsets/requests.py:30` ### nexla_sdk.models.nexsets.responses -- DataSinkSimplified: `nexla_sdk/models/nexsets/responses.py:10` -- Nexset: `nexla_sdk/models/nexsets/responses.py:20` -- NexsetSample: `nexla_sdk/models/nexsets/responses.py:43` +- DataSinkSimplified: `nexla_sdk/models/nexsets/responses.py:12` +- Nexset: `nexla_sdk/models/nexsets/responses.py:23` +- NexsetSample: `nexla_sdk/models/nexsets/responses.py:47` ### nexla_sdk.models.notifications -- Notification: `nexla_sdk/models/notifications/responses.py:8` -- NotificationChannelSetting: `nexla_sdk/models/notifications/responses.py:37` -- NotificationChannelSettingCreate: `nexla_sdk/models/notifications/requests.py:6` -- NotificationChannelSettingUpdate: `nexla_sdk/models/notifications/requests.py:12` -- NotificationCount: `nexla_sdk/models/notifications/responses.py:67` -- NotificationSetting: `nexla_sdk/models/notifications/responses.py:46` -- NotificationSettingCreate: `nexla_sdk/models/notifications/requests.py:18` -- NotificationSettingUpdate: `nexla_sdk/models/notifications/requests.py:29` -- NotificationType: `nexla_sdk/models/notifications/responses.py:25` +- Notification: `nexla_sdk/models/notifications/responses.py:10` +- NotificationChannelSetting: `nexla_sdk/models/notifications/responses.py:41` +- NotificationChannelSettingCreate: `nexla_sdk/models/notifications/requests.py:8` +- NotificationChannelSettingUpdate: `nexla_sdk/models/notifications/requests.py:15` +- NotificationCount: `nexla_sdk/models/notifications/responses.py:73` +- NotificationSetting: `nexla_sdk/models/notifications/responses.py:51` +- NotificationSettingCreate: `nexla_sdk/models/notifications/requests.py:22` +- NotificationSettingUpdate: `nexla_sdk/models/notifications/requests.py:34` +- NotificationType: `nexla_sdk/models/notifications/responses.py:28` ### nexla_sdk.models.notifications.requests -- NotificationChannelSettingCreate: `nexla_sdk/models/notifications/requests.py:6` -- NotificationChannelSettingUpdate: `nexla_sdk/models/notifications/requests.py:12` -- NotificationSettingCreate: `nexla_sdk/models/notifications/requests.py:18` -- NotificationSettingUpdate: `nexla_sdk/models/notifications/requests.py:29` +- NotificationChannelSettingCreate: `nexla_sdk/models/notifications/requests.py:8` +- NotificationChannelSettingUpdate: `nexla_sdk/models/notifications/requests.py:15` +- NotificationSettingCreate: `nexla_sdk/models/notifications/requests.py:22` +- NotificationSettingUpdate: `nexla_sdk/models/notifications/requests.py:34` ### nexla_sdk.models.notifications.responses -- Notification: `nexla_sdk/models/notifications/responses.py:8` -- NotificationChannelSetting: `nexla_sdk/models/notifications/responses.py:37` -- NotificationCount: `nexla_sdk/models/notifications/responses.py:67` -- NotificationSetting: `nexla_sdk/models/notifications/responses.py:46` -- NotificationType: `nexla_sdk/models/notifications/responses.py:25` +- Notification: `nexla_sdk/models/notifications/responses.py:10` +- NotificationChannelSetting: `nexla_sdk/models/notifications/responses.py:41` +- NotificationCount: `nexla_sdk/models/notifications/responses.py:73` +- NotificationSetting: `nexla_sdk/models/notifications/responses.py:51` +- NotificationType: `nexla_sdk/models/notifications/responses.py:28` ### nexla_sdk.models.org_auth_configs - AuthConfig: `nexla_sdk/models/org_auth_configs/responses.py:7` - AuthConfigPayload: `nexla_sdk/models/org_auth_configs/requests.py:6` @@ -1252,62 +1318,62 @@ Each API page embeds per-symbol source links. Summary below. ### nexla_sdk.models.org_auth_configs.responses - AuthConfig: `nexla_sdk/models/org_auth_configs/responses.py:7` ### nexla_sdk.models.organizations -- AccountSummary: `nexla_sdk/models/organizations/responses.py:60` -- CustodianUser: `nexla_sdk/models/organizations/responses.py:68` +- AccountSummary: `nexla_sdk/models/organizations/responses.py:65` +- CustodianUser: `nexla_sdk/models/organizations/responses.py:74` - OrgCustodianRef: `nexla_sdk/models/organizations/custodians.py:6` -- OrgCustodiansPayload: `nexla_sdk/models/organizations/custodians.py:12` -- OrgMember: `nexla_sdk/models/organizations/responses.py:49` -- OrgMemberActivateDeactivateRequest: `nexla_sdk/models/organizations/requests.py:70` -- OrgMemberCreateRequest: `nexla_sdk/models/organizations/requests.py:11` -- OrgMemberDelete: `nexla_sdk/models/organizations/requests.py:65` -- OrgMemberDeleteRequest: `nexla_sdk/models/organizations/requests.py:58` -- OrgMemberList: `nexla_sdk/models/organizations/requests.py:53` -- OrgMemberUpdate: `nexla_sdk/models/organizations/requests.py:44` -- OrgTier: `nexla_sdk/models/organizations/responses.py:8` -- Organization: `nexla_sdk/models/organizations/responses.py:19` -- OrganizationCreate: `nexla_sdk/models/organizations/requests.py:18` -- OrganizationUpdate: `nexla_sdk/models/organizations/requests.py:32` +- OrgCustodiansPayload: `nexla_sdk/models/organizations/custodians.py:13` +- OrgMember: `nexla_sdk/models/organizations/responses.py:53` +- OrgMemberActivateDeactivateRequest: `nexla_sdk/models/organizations/requests.py:79` +- OrgMemberCreateRequest: `nexla_sdk/models/organizations/requests.py:13` +- OrgMemberDelete: `nexla_sdk/models/organizations/requests.py:73` +- OrgMemberDeleteRequest: `nexla_sdk/models/organizations/requests.py:65` +- OrgMemberList: `nexla_sdk/models/organizations/requests.py:59` +- OrgMemberUpdate: `nexla_sdk/models/organizations/requests.py:49` +- OrgTier: `nexla_sdk/models/organizations/responses.py:10` +- Organization: `nexla_sdk/models/organizations/responses.py:22` +- OrganizationCreate: `nexla_sdk/models/organizations/requests.py:21` +- OrganizationUpdate: `nexla_sdk/models/organizations/requests.py:36` ### nexla_sdk.models.organizations.custodians - OrgCustodianRef: `nexla_sdk/models/organizations/custodians.py:6` -- OrgCustodiansPayload: `nexla_sdk/models/organizations/custodians.py:12` +- OrgCustodiansPayload: `nexla_sdk/models/organizations/custodians.py:13` ### nexla_sdk.models.organizations.requests -- OrgMemberActivateDeactivateRequest: `nexla_sdk/models/organizations/requests.py:70` -- OrgMemberCreateRequest: `nexla_sdk/models/organizations/requests.py:11` -- OrgMemberDelete: `nexla_sdk/models/organizations/requests.py:65` -- OrgMemberDeleteRequest: `nexla_sdk/models/organizations/requests.py:58` -- OrgMemberList: `nexla_sdk/models/organizations/requests.py:53` -- OrgMemberUpdate: `nexla_sdk/models/organizations/requests.py:44` -- OrgOwnerRequest: `nexla_sdk/models/organizations/requests.py:5` -- OrganizationCreate: `nexla_sdk/models/organizations/requests.py:18` -- OrganizationUpdate: `nexla_sdk/models/organizations/requests.py:32` +- OrgMemberActivateDeactivateRequest: `nexla_sdk/models/organizations/requests.py:79` +- OrgMemberCreateRequest: `nexla_sdk/models/organizations/requests.py:13` +- OrgMemberDelete: `nexla_sdk/models/organizations/requests.py:73` +- OrgMemberDeleteRequest: `nexla_sdk/models/organizations/requests.py:65` +- OrgMemberList: `nexla_sdk/models/organizations/requests.py:59` +- OrgMemberUpdate: `nexla_sdk/models/organizations/requests.py:49` +- OrgOwnerRequest: `nexla_sdk/models/organizations/requests.py:6` +- OrganizationCreate: `nexla_sdk/models/organizations/requests.py:21` +- OrganizationUpdate: `nexla_sdk/models/organizations/requests.py:36` ### nexla_sdk.models.organizations.responses -- AccountSummary: `nexla_sdk/models/organizations/responses.py:60` -- CustodianUser: `nexla_sdk/models/organizations/responses.py:68` -- OrgMember: `nexla_sdk/models/organizations/responses.py:49` -- OrgTier: `nexla_sdk/models/organizations/responses.py:8` -- Organization: `nexla_sdk/models/organizations/responses.py:19` +- AccountSummary: `nexla_sdk/models/organizations/responses.py:65` +- CustodianUser: `nexla_sdk/models/organizations/responses.py:74` +- OrgMember: `nexla_sdk/models/organizations/responses.py:53` +- OrgTier: `nexla_sdk/models/organizations/responses.py:10` +- Organization: `nexla_sdk/models/organizations/responses.py:22` ### nexla_sdk.models.projects -- Project: `nexla_sdk/models/projects/responses.py:21` -- ProjectCreate: `nexla_sdk/models/projects/requests.py:12` -- ProjectDataFlow: `nexla_sdk/models/projects/responses.py:8` -- ProjectFlowIdentifier: `nexla_sdk/models/projects/requests.py:6` -- ProjectFlowList: `nexla_sdk/models/projects/requests.py:26` -- ProjectUpdate: `nexla_sdk/models/projects/requests.py:19` +- Project: `nexla_sdk/models/projects/responses.py:24` +- ProjectCreate: `nexla_sdk/models/projects/requests.py:15` +- ProjectDataFlow: `nexla_sdk/models/projects/responses.py:10` +- ProjectFlowIdentifier: `nexla_sdk/models/projects/requests.py:8` +- ProjectFlowList: `nexla_sdk/models/projects/requests.py:31` +- ProjectUpdate: `nexla_sdk/models/projects/requests.py:23` ### nexla_sdk.models.projects.requests -- ProjectCreate: `nexla_sdk/models/projects/requests.py:12` -- ProjectFlowIdentifier: `nexla_sdk/models/projects/requests.py:6` -- ProjectFlowList: `nexla_sdk/models/projects/requests.py:26` -- ProjectUpdate: `nexla_sdk/models/projects/requests.py:19` +- ProjectCreate: `nexla_sdk/models/projects/requests.py:15` +- ProjectFlowIdentifier: `nexla_sdk/models/projects/requests.py:8` +- ProjectFlowList: `nexla_sdk/models/projects/requests.py:31` +- ProjectUpdate: `nexla_sdk/models/projects/requests.py:23` ### nexla_sdk.models.projects.responses -- Project: `nexla_sdk/models/projects/responses.py:21` -- ProjectDataFlow: `nexla_sdk/models/projects/responses.py:8` +- Project: `nexla_sdk/models/projects/responses.py:24` +- ProjectDataFlow: `nexla_sdk/models/projects/responses.py:10` ### nexla_sdk.models.runtimes - Runtime: `nexla_sdk/models/runtimes/responses.py:7` - RuntimeCreate: `nexla_sdk/models/runtimes/requests.py:6` -- RuntimeUpdate: `nexla_sdk/models/runtimes/requests.py:16` +- RuntimeUpdate: `nexla_sdk/models/runtimes/requests.py:17` ### nexla_sdk.models.runtimes.requests - RuntimeCreate: `nexla_sdk/models/runtimes/requests.py:6` -- RuntimeUpdate: `nexla_sdk/models/runtimes/requests.py:16` +- RuntimeUpdate: `nexla_sdk/models/runtimes/requests.py:17` ### nexla_sdk.models.runtimes.responses - Runtime: `nexla_sdk/models/runtimes/responses.py:7` ### nexla_sdk.models.self_signup @@ -1317,862 +1383,891 @@ Each API page embeds per-symbol source links. Summary below. - BlockedDomain: `nexla_sdk/models/self_signup/responses.py:17` - SelfSignupRequest: `nexla_sdk/models/self_signup/responses.py:7` ### nexla_sdk.models.sources -- DataSetBrief: `nexla_sdk/models/sources/responses.py:9` -- FlowType: `nexla_sdk/models/sources/enums.py:68` -- IngestMethod: `nexla_sdk/models/sources/enums.py:59` -- RunInfo: `nexla_sdk/models/sources/responses.py:21` -- Source: `nexla_sdk/models/sources/responses.py:27` -- SourceCopyOptions: `nexla_sdk/models/sources/requests.py:30` -- SourceCreate: `nexla_sdk/models/sources/requests.py:6` -- SourceStatus: `nexla_sdk/models/sources/enums.py:5` -- SourceType: `nexla_sdk/models/sources/enums.py:14` -- SourceUpdate: `nexla_sdk/models/sources/requests.py:22` +- DataSetBrief: `nexla_sdk/models/sources/responses.py:11` +- FlowType: `nexla_sdk/models/sources/enums.py:72` +- IngestMethod: `nexla_sdk/models/sources/enums.py:62` +- RunInfo: `nexla_sdk/models/sources/responses.py:24` +- Source: `nexla_sdk/models/sources/responses.py:31` +- SourceCopyOptions: `nexla_sdk/models/sources/requests.py:34` +- SourceCreate: `nexla_sdk/models/sources/requests.py:8` +- SourceStatus: `nexla_sdk/models/sources/enums.py:6` +- SourceType: `nexla_sdk/models/sources/enums.py:16` +- SourceUpdate: `nexla_sdk/models/sources/requests.py:25` ### nexla_sdk.models.sources.enums -- FlowType: `nexla_sdk/models/sources/enums.py:68` -- IngestMethod: `nexla_sdk/models/sources/enums.py:59` -- SourceStatus: `nexla_sdk/models/sources/enums.py:5` -- SourceType: `nexla_sdk/models/sources/enums.py:14` +- FlowType: `nexla_sdk/models/sources/enums.py:72` +- IngestMethod: `nexla_sdk/models/sources/enums.py:62` +- SourceStatus: `nexla_sdk/models/sources/enums.py:6` +- SourceType: `nexla_sdk/models/sources/enums.py:16` ### nexla_sdk.models.sources.requests -- SourceCopyOptions: `nexla_sdk/models/sources/requests.py:30` -- SourceCreate: `nexla_sdk/models/sources/requests.py:6` -- SourceUpdate: `nexla_sdk/models/sources/requests.py:22` +- SourceCopyOptions: `nexla_sdk/models/sources/requests.py:34` +- SourceCreate: `nexla_sdk/models/sources/requests.py:8` +- SourceUpdate: `nexla_sdk/models/sources/requests.py:25` ### nexla_sdk.models.sources.responses -- DataSetBrief: `nexla_sdk/models/sources/responses.py:9` -- RunInfo: `nexla_sdk/models/sources/responses.py:21` -- Source: `nexla_sdk/models/sources/responses.py:27` +- DataSetBrief: `nexla_sdk/models/sources/responses.py:11` +- RunInfo: `nexla_sdk/models/sources/responses.py:24` +- Source: `nexla_sdk/models/sources/responses.py:31` ### nexla_sdk.models.teams -- Team: `nexla_sdk/models/teams/responses.py:15` -- TeamCreate: `nexla_sdk/models/teams/requests.py:14` -- TeamMember: `nexla_sdk/models/teams/responses.py:8` -- TeamMemberList: `nexla_sdk/models/teams/requests.py:28` -- TeamMemberRequest: `nexla_sdk/models/teams/requests.py:6` -- TeamUpdate: `nexla_sdk/models/teams/requests.py:21` +- Team: `nexla_sdk/models/teams/responses.py:18` +- TeamCreate: `nexla_sdk/models/teams/requests.py:17` +- TeamMember: `nexla_sdk/models/teams/responses.py:10` +- TeamMemberList: `nexla_sdk/models/teams/requests.py:33` +- TeamMemberRequest: `nexla_sdk/models/teams/requests.py:8` +- TeamUpdate: `nexla_sdk/models/teams/requests.py:25` ### nexla_sdk.models.teams.requests -- TeamCreate: `nexla_sdk/models/teams/requests.py:14` -- TeamMemberList: `nexla_sdk/models/teams/requests.py:28` -- TeamMemberRequest: `nexla_sdk/models/teams/requests.py:6` -- TeamUpdate: `nexla_sdk/models/teams/requests.py:21` +- TeamCreate: `nexla_sdk/models/teams/requests.py:17` +- TeamMemberList: `nexla_sdk/models/teams/requests.py:33` +- TeamMemberRequest: `nexla_sdk/models/teams/requests.py:8` +- TeamUpdate: `nexla_sdk/models/teams/requests.py:25` ### nexla_sdk.models.teams.responses -- Team: `nexla_sdk/models/teams/responses.py:15` -- TeamMember: `nexla_sdk/models/teams/responses.py:8` +- Team: `nexla_sdk/models/teams/responses.py:18` +- TeamMember: `nexla_sdk/models/teams/responses.py:10` ### nexla_sdk.models.transforms - Transform: `nexla_sdk/models/transforms/responses.py:12` - TransformCodeOp: `nexla_sdk/models/transforms/responses.py:7` -- TransformCreate: `nexla_sdk/models/transforms/requests.py:7` -- TransformUpdate: `nexla_sdk/models/transforms/requests.py:22` +- TransformCreate: `nexla_sdk/models/transforms/requests.py:8` +- TransformUpdate: `nexla_sdk/models/transforms/requests.py:23` ### nexla_sdk.models.transforms.requests -- TransformCreate: `nexla_sdk/models/transforms/requests.py:7` -- TransformUpdate: `nexla_sdk/models/transforms/requests.py:22` +- TransformCreate: `nexla_sdk/models/transforms/requests.py:8` +- TransformUpdate: `nexla_sdk/models/transforms/requests.py:23` ### nexla_sdk.models.transforms.responses - Transform: `nexla_sdk/models/transforms/responses.py:12` - TransformCodeOp: `nexla_sdk/models/transforms/responses.py:7` ### nexla_sdk.models.users -- AccountSummary: `nexla_sdk/models/users/responses.py:42` -- DefaultOrg: `nexla_sdk/models/users/responses.py:7` -- OrgMembership: `nexla_sdk/models/users/responses.py:13` -- User: `nexla_sdk/models/users/responses.py:22` -- UserCreate: `nexla_sdk/models/users/requests.py:6` -- UserExpanded: `nexla_sdk/models/users/responses.py:50` -- UserSettings: `nexla_sdk/models/users/responses.py:55` -- UserUpdate: `nexla_sdk/models/users/requests.py:19` +- AccountSummary: `nexla_sdk/models/users/responses.py:47` +- DefaultOrg: `nexla_sdk/models/users/responses.py:9` +- OrgMembership: `nexla_sdk/models/users/responses.py:16` +- User: `nexla_sdk/models/users/responses.py:26` +- UserCreate: `nexla_sdk/models/users/requests.py:7` +- UserExpanded: `nexla_sdk/models/users/responses.py:56` +- UserSettings: `nexla_sdk/models/users/responses.py:62` +- UserUpdate: `nexla_sdk/models/users/requests.py:21` ### nexla_sdk.models.users.requests -- UserCreate: `nexla_sdk/models/users/requests.py:6` -- UserUpdate: `nexla_sdk/models/users/requests.py:19` +- UserCreate: `nexla_sdk/models/users/requests.py:7` +- UserUpdate: `nexla_sdk/models/users/requests.py:21` ### nexla_sdk.models.users.responses -- AccountSummary: `nexla_sdk/models/users/responses.py:42` -- DefaultOrg: `nexla_sdk/models/users/responses.py:7` -- OrgMembership: `nexla_sdk/models/users/responses.py:13` -- User: `nexla_sdk/models/users/responses.py:22` -- UserExpanded: `nexla_sdk/models/users/responses.py:50` -- UserSettings: `nexla_sdk/models/users/responses.py:55` +- AccountSummary: `nexla_sdk/models/users/responses.py:47` +- DefaultOrg: `nexla_sdk/models/users/responses.py:9` +- OrgMembership: `nexla_sdk/models/users/responses.py:16` +- User: `nexla_sdk/models/users/responses.py:26` +- UserExpanded: `nexla_sdk/models/users/responses.py:56` +- UserSettings: `nexla_sdk/models/users/responses.py:62` +### nexla_sdk.models.webhooks +- WebhookResponse: `nexla_sdk/models/webhooks/responses.py:8` +- WebhookSendOptions: `nexla_sdk/models/webhooks/requests.py:8` +### nexla_sdk.models.webhooks.requests +- WebhookSendOptions: `nexla_sdk/models/webhooks/requests.py:8` +### nexla_sdk.models.webhooks.responses +- WebhookResponse: `nexla_sdk/models/webhooks/responses.py:8` ### nexla_sdk.resources -- ApprovalRequestsResource: `nexla_sdk/resources/approval_requests.py:6` -- ApprovalRequestsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- ApprovalRequestsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- ApprovalRequestsResource.approve: `nexla_sdk/resources/approval_requests.py:24` -- ApprovalRequestsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- ApprovalRequestsResource.create: `nexla_sdk/resources/base_resource.py:199` -- ApprovalRequestsResource.delete: `nexla_sdk/resources/base_resource.py:236` -- ApprovalRequestsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- ApprovalRequestsResource.get: `nexla_sdk/resources/base_resource.py:175` -- ApprovalRequestsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- ApprovalRequestsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- ApprovalRequestsResource.list: `nexla_sdk/resources/base_resource.py:106` -- ApprovalRequestsResource.list_pending: `nexla_sdk/resources/approval_requests.py:14` -- ApprovalRequestsResource.list_requested: `nexla_sdk/resources/approval_requests.py:19` -- ApprovalRequestsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- ApprovalRequestsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- ApprovalRequestsResource.reject: `nexla_sdk/resources/approval_requests.py:29` -- ApprovalRequestsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- ApprovalRequestsResource.update: `nexla_sdk/resources/base_resource.py:220` -- AsyncTasksResource: `nexla_sdk/resources/async_tasks.py:7` -- AsyncTasksResource.acknowledge: `nexla_sdk/resources/async_tasks.py:72` -- AsyncTasksResource.activate: `nexla_sdk/resources/base_resource.py:249` -- AsyncTasksResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- AsyncTasksResource.copy: `nexla_sdk/resources/base_resource.py:277` -- AsyncTasksResource.create: `nexla_sdk/resources/async_tasks.py:20` -- AsyncTasksResource.delete: `nexla_sdk/resources/async_tasks.py:49` -- AsyncTasksResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- AsyncTasksResource.download_link: `nexla_sdk/resources/async_tasks.py:62` -- AsyncTasksResource.explain_arguments: `nexla_sdk/resources/async_tasks.py:40` -- AsyncTasksResource.get: `nexla_sdk/resources/async_tasks.py:44` -- AsyncTasksResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- AsyncTasksResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- AsyncTasksResource.list: `nexla_sdk/resources/async_tasks.py:15` -- AsyncTasksResource.list_by_status: `nexla_sdk/resources/async_tasks.py:31` -- AsyncTasksResource.list_of_type: `nexla_sdk/resources/async_tasks.py:26` -- AsyncTasksResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- AsyncTasksResource.pause: `nexla_sdk/resources/base_resource.py:263` -- AsyncTasksResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- AsyncTasksResource.rerun: `nexla_sdk/resources/async_tasks.py:53` -- AsyncTasksResource.result: `nexla_sdk/resources/async_tasks.py:58` -- AsyncTasksResource.types: `nexla_sdk/resources/async_tasks.py:36` -- AsyncTasksResource.update: `nexla_sdk/resources/base_resource.py:220` -- AttributeTransformsResource: `nexla_sdk/resources/attribute_transforms.py:9` -- AttributeTransformsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- AttributeTransformsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- AttributeTransformsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- AttributeTransformsResource.create: `nexla_sdk/resources/attribute_transforms.py:39` -- AttributeTransformsResource.delete: `nexla_sdk/resources/attribute_transforms.py:47` -- AttributeTransformsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- AttributeTransformsResource.get: `nexla_sdk/resources/attribute_transforms.py:35` -- AttributeTransformsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- AttributeTransformsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- AttributeTransformsResource.list: `nexla_sdk/resources/attribute_transforms.py:17` -- AttributeTransformsResource.list_public: `nexla_sdk/resources/attribute_transforms.py:51` -- AttributeTransformsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- AttributeTransformsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- AttributeTransformsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- AttributeTransformsResource.update: `nexla_sdk/resources/attribute_transforms.py:43` -- BaseResource: `nexla_sdk/resources/base_resource.py:12` -- BaseResource.activate: `nexla_sdk/resources/base_resource.py:249` -- BaseResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- BaseResource.copy: `nexla_sdk/resources/base_resource.py:277` -- BaseResource.create: `nexla_sdk/resources/base_resource.py:199` -- BaseResource.delete: `nexla_sdk/resources/base_resource.py:236` -- BaseResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- BaseResource.get: `nexla_sdk/resources/base_resource.py:175` -- BaseResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- BaseResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- BaseResource.list: `nexla_sdk/resources/base_resource.py:106` -- BaseResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- BaseResource.pause: `nexla_sdk/resources/base_resource.py:263` -- BaseResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- BaseResource.update: `nexla_sdk/resources/base_resource.py:220` -- CodeContainersResource: `nexla_sdk/resources/code_containers.py:7` -- CodeContainersResource.activate: `nexla_sdk/resources/base_resource.py:249` -- CodeContainersResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- CodeContainersResource.copy: `nexla_sdk/resources/code_containers.py:61` -- CodeContainersResource.create: `nexla_sdk/resources/code_containers.py:41` -- CodeContainersResource.delete: `nexla_sdk/resources/code_containers.py:57` -- CodeContainersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- CodeContainersResource.get: `nexla_sdk/resources/code_containers.py:33` -- CodeContainersResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- CodeContainersResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- CodeContainersResource.list: `nexla_sdk/resources/code_containers.py:15` -- CodeContainersResource.list_public: `nexla_sdk/resources/code_containers.py:65` -- CodeContainersResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- CodeContainersResource.pause: `nexla_sdk/resources/base_resource.py:263` -- CodeContainersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- CodeContainersResource.update: `nexla_sdk/resources/code_containers.py:49` -- CredentialsResource: `nexla_sdk/resources/credentials.py:10` -- CredentialsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- CredentialsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- CredentialsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- CredentialsResource.create: `nexla_sdk/resources/credentials.py:66` -- CredentialsResource.delete: `nexla_sdk/resources/credentials.py:96` -- CredentialsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- CredentialsResource.get: `nexla_sdk/resources/credentials.py:50` -- CredentialsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- CredentialsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- CredentialsResource.list: `nexla_sdk/resources/credentials.py:18` -- CredentialsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- CredentialsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- CredentialsResource.probe: `nexla_sdk/resources/credentials.py:108` -- CredentialsResource.probe_sample: `nexla_sdk/resources/credentials.py:158` -- CredentialsResource.probe_tree: `nexla_sdk/resources/credentials.py:134` -- CredentialsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- CredentialsResource.update: `nexla_sdk/resources/credentials.py:83` -- DataSchemasResource: `nexla_sdk/resources/data_schemas.py:6` -- DataSchemasResource.activate: `nexla_sdk/resources/base_resource.py:249` -- DataSchemasResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- DataSchemasResource.copy: `nexla_sdk/resources/base_resource.py:277` -- DataSchemasResource.create: `nexla_sdk/resources/base_resource.py:199` -- DataSchemasResource.delete: `nexla_sdk/resources/base_resource.py:236` -- DataSchemasResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- DataSchemasResource.get: `nexla_sdk/resources/base_resource.py:175` -- DataSchemasResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- DataSchemasResource.get_audit_log: `nexla_sdk/resources/data_schemas.py:14` -- DataSchemasResource.list: `nexla_sdk/resources/base_resource.py:106` -- DataSchemasResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- DataSchemasResource.pause: `nexla_sdk/resources/base_resource.py:263` -- DataSchemasResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- DataSchemasResource.update: `nexla_sdk/resources/base_resource.py:220` -- DestinationsResource: `nexla_sdk/resources/destinations.py:7` -- DestinationsResource.activate: `nexla_sdk/resources/destinations.py:89` -- DestinationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- DestinationsResource.copy: `nexla_sdk/resources/destinations.py:113` -- DestinationsResource.create: `nexla_sdk/resources/destinations.py:49` -- DestinationsResource.delete: `nexla_sdk/resources/destinations.py:77` -- DestinationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- DestinationsResource.get: `nexla_sdk/resources/destinations.py:33` -- DestinationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- DestinationsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- DestinationsResource.list: `nexla_sdk/resources/destinations.py:15` -- DestinationsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- DestinationsResource.pause: `nexla_sdk/resources/destinations.py:101` -- DestinationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- DestinationsResource.update: `nexla_sdk/resources/destinations.py:64` -- DocContainersResource: `nexla_sdk/resources/doc_containers.py:6` -- DocContainersResource.activate: `nexla_sdk/resources/base_resource.py:249` -- DocContainersResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- DocContainersResource.copy: `nexla_sdk/resources/base_resource.py:277` -- DocContainersResource.create: `nexla_sdk/resources/base_resource.py:199` -- DocContainersResource.delete: `nexla_sdk/resources/base_resource.py:236` -- DocContainersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- DocContainersResource.get: `nexla_sdk/resources/base_resource.py:175` -- DocContainersResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- DocContainersResource.get_audit_log: `nexla_sdk/resources/doc_containers.py:14` -- DocContainersResource.list: `nexla_sdk/resources/base_resource.py:106` -- DocContainersResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- DocContainersResource.pause: `nexla_sdk/resources/base_resource.py:263` -- DocContainersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- DocContainersResource.update: `nexla_sdk/resources/base_resource.py:220` -- FlowsResource: `nexla_sdk/resources/flows.py:7` -- FlowsResource.activate: `nexla_sdk/resources/flows.py:83` -- FlowsResource.activate_by_resource: `nexla_sdk/resources/flows.py:164` -- FlowsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- FlowsResource.copy: `nexla_sdk/resources/flows.py:125` -- FlowsResource.create: `nexla_sdk/resources/base_resource.py:199` -- FlowsResource.delete: `nexla_sdk/resources/flows.py:138` -- FlowsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- FlowsResource.delete_by_resource: `nexla_sdk/resources/flows.py:150` -- FlowsResource.docs_recommendation: `nexla_sdk/resources/flows.py:216` -- FlowsResource.get: `nexla_sdk/resources/flows.py:46` -- FlowsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- FlowsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- FlowsResource.get_by_resource: `nexla_sdk/resources/flows.py:62` -- FlowsResource.get_logs: `nexla_sdk/resources/flows.py:221` -- FlowsResource.get_metrics: `nexla_sdk/resources/flows.py:243` -- FlowsResource.list: `nexla_sdk/resources/flows.py:15` -- FlowsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- FlowsResource.pause: `nexla_sdk/resources/flows.py:104` -- FlowsResource.pause_by_resource: `nexla_sdk/resources/flows.py:190` -- FlowsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- FlowsResource.update: `nexla_sdk/resources/base_resource.py:220` -- GenAIResource: `nexla_sdk/resources/genai.py:9` -- GenAIResource.activate: `nexla_sdk/resources/base_resource.py:249` -- GenAIResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- GenAIResource.copy: `nexla_sdk/resources/base_resource.py:277` -- GenAIResource.create: `nexla_sdk/resources/base_resource.py:199` -- GenAIResource.create_config: `nexla_sdk/resources/genai.py:22` -- GenAIResource.create_org_setting: `nexla_sdk/resources/genai.py:49` -- GenAIResource.delete: `nexla_sdk/resources/base_resource.py:236` -- GenAIResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- GenAIResource.delete_config: `nexla_sdk/resources/genai.py:36` -- GenAIResource.delete_org_setting: `nexla_sdk/resources/genai.py:58` -- GenAIResource.get: `nexla_sdk/resources/base_resource.py:175` -- GenAIResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- GenAIResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- GenAIResource.get_config: `nexla_sdk/resources/genai.py:27` -- GenAIResource.get_org_setting: `nexla_sdk/resources/genai.py:54` -- GenAIResource.list: `nexla_sdk/resources/base_resource.py:106` -- GenAIResource.list_configs: `nexla_sdk/resources/genai.py:18` -- GenAIResource.list_org_settings: `nexla_sdk/resources/genai.py:40` -- GenAIResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- GenAIResource.pause: `nexla_sdk/resources/base_resource.py:263` -- GenAIResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- GenAIResource.show_active_config: `nexla_sdk/resources/genai.py:61` -- GenAIResource.update: `nexla_sdk/resources/base_resource.py:220` -- GenAIResource.update_config: `nexla_sdk/resources/genai.py:31` -- LookupsResource: `nexla_sdk/resources/lookups.py:8` -- LookupsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- LookupsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- LookupsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- LookupsResource.create: `nexla_sdk/resources/lookups.py:50` -- LookupsResource.delete: `nexla_sdk/resources/lookups.py:78` -- LookupsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- LookupsResource.delete_entries: `nexla_sdk/resources/lookups.py:131` -- LookupsResource.get: `nexla_sdk/resources/lookups.py:34` -- LookupsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- LookupsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- LookupsResource.get_entries: `nexla_sdk/resources/lookups.py:110` -- LookupsResource.list: `nexla_sdk/resources/lookups.py:16` -- LookupsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- LookupsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- LookupsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- LookupsResource.update: `nexla_sdk/resources/lookups.py:65` -- LookupsResource.upsert_entries: `nexla_sdk/resources/lookups.py:90` -- MarketplaceResource: `nexla_sdk/resources/marketplace.py:11` -- MarketplaceResource.activate: `nexla_sdk/resources/base_resource.py:249` -- MarketplaceResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- MarketplaceResource.add_domain_custodians: `nexla_sdk/resources/marketplace.py:70` -- MarketplaceResource.copy: `nexla_sdk/resources/base_resource.py:277` -- MarketplaceResource.create: `nexla_sdk/resources/base_resource.py:199` -- MarketplaceResource.create_domain: `nexla_sdk/resources/marketplace.py:42` -- MarketplaceResource.create_domain_item: `nexla_sdk/resources/marketplace.py:55` -- MarketplaceResource.create_domains: `nexla_sdk/resources/marketplace.py:24` -- MarketplaceResource.delete: `nexla_sdk/resources/base_resource.py:236` -- MarketplaceResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- MarketplaceResource.delete_domain: `nexla_sdk/resources/marketplace.py:47` -- MarketplaceResource.get: `nexla_sdk/resources/base_resource.py:175` -- MarketplaceResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- MarketplaceResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- MarketplaceResource.get_domain: `nexla_sdk/resources/marketplace.py:33` -- MarketplaceResource.get_domains_for_org: `nexla_sdk/resources/marketplace.py:29` -- MarketplaceResource.list: `nexla_sdk/resources/base_resource.py:106` -- MarketplaceResource.list_domain_custodians: `nexla_sdk/resources/marketplace.py:61` -- MarketplaceResource.list_domain_items: `nexla_sdk/resources/marketplace.py:51` -- MarketplaceResource.list_domains: `nexla_sdk/resources/marketplace.py:20` -- MarketplaceResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- MarketplaceResource.pause: `nexla_sdk/resources/base_resource.py:263` -- MarketplaceResource.remove_domain_custodians: `nexla_sdk/resources/marketplace.py:75` -- MarketplaceResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- MarketplaceResource.update: `nexla_sdk/resources/base_resource.py:220` -- MarketplaceResource.update_domain: `nexla_sdk/resources/marketplace.py:37` -- MarketplaceResource.update_domain_custodians: `nexla_sdk/resources/marketplace.py:65` -- MetricsResource: `nexla_sdk/resources/metrics.py:10` -- MetricsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- MetricsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- MetricsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- MetricsResource.create: `nexla_sdk/resources/base_resource.py:199` -- MetricsResource.delete: `nexla_sdk/resources/base_resource.py:236` -- MetricsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- MetricsResource.get: `nexla_sdk/resources/base_resource.py:175` -- MetricsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- MetricsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- MetricsResource.get_flow_logs: `nexla_sdk/resources/metrics.py:120` -- MetricsResource.get_flow_metrics: `nexla_sdk/resources/metrics.py:97` -- MetricsResource.get_rate_limits: `nexla_sdk/resources/metrics.py:86` -- MetricsResource.get_resource_daily_metrics: `nexla_sdk/resources/metrics.py:23` -- MetricsResource.get_resource_metrics_by_run: `nexla_sdk/resources/metrics.py:51` -- MetricsResource.list: `nexla_sdk/resources/base_resource.py:106` -- MetricsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- MetricsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- MetricsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- MetricsResource.update: `nexla_sdk/resources/base_resource.py:220` -- NexsetsResource: `nexla_sdk/resources/nexsets.py:7` -- NexsetsResource.activate: `nexla_sdk/resources/nexsets.py:89` -- NexsetsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- NexsetsResource.copy: `nexla_sdk/resources/nexsets.py:144` -- NexsetsResource.create: `nexla_sdk/resources/nexsets.py:49` -- NexsetsResource.delete: `nexla_sdk/resources/nexsets.py:77` -- NexsetsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- NexsetsResource.docs_recommendation: `nexla_sdk/resources/nexsets.py:158` -- NexsetsResource.get: `nexla_sdk/resources/nexsets.py:33` -- NexsetsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- NexsetsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- NexsetsResource.get_samples: `nexla_sdk/resources/nexsets.py:113` -- NexsetsResource.list: `nexla_sdk/resources/nexsets.py:15` -- NexsetsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- NexsetsResource.pause: `nexla_sdk/resources/nexsets.py:101` -- NexsetsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- NexsetsResource.update: `nexla_sdk/resources/nexsets.py:64` -- NotificationsResource: `nexla_sdk/resources/notifications.py:13` -- NotificationsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- NotificationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- NotificationsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- NotificationsResource.create: `nexla_sdk/resources/base_resource.py:199` -- NotificationsResource.create_channel_setting: `nexla_sdk/resources/notifications.py:190` -- NotificationsResource.create_setting: `nexla_sdk/resources/notifications.py:276` -- NotificationsResource.delete: `nexla_sdk/resources/notifications.py:34` -- NotificationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- NotificationsResource.delete_all: `nexla_sdk/resources/notifications.py:82` -- NotificationsResource.delete_channel_setting: `nexla_sdk/resources/notifications.py:235` -- NotificationsResource.delete_setting: `nexla_sdk/resources/notifications.py:321` -- NotificationsResource.get: `nexla_sdk/resources/notifications.py:21` -- NotificationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- NotificationsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- NotificationsResource.get_channel_setting: `nexla_sdk/resources/notifications.py:204` -- NotificationsResource.get_count: `nexla_sdk/resources/notifications.py:92` -- NotificationsResource.get_resource_settings: `nexla_sdk/resources/notifications.py:352` -- NotificationsResource.get_setting: `nexla_sdk/resources/notifications.py:290` -- NotificationsResource.get_settings_by_type: `nexla_sdk/resources/notifications.py:334` -- NotificationsResource.get_type: `nexla_sdk/resources/notifications.py:159` -- NotificationsResource.get_types: `nexla_sdk/resources/notifications.py:144` -- NotificationsResource.list: `nexla_sdk/resources/notifications.py:46` -- NotificationsResource.list_channel_settings: `nexla_sdk/resources/notifications.py:179` -- NotificationsResource.list_settings: `nexla_sdk/resources/notifications.py:249` -- NotificationsResource.mark_read: `nexla_sdk/resources/notifications.py:107` -- NotificationsResource.mark_unread: `nexla_sdk/resources/notifications.py:125` -- NotificationsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- NotificationsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- NotificationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- NotificationsResource.update: `nexla_sdk/resources/base_resource.py:220` -- NotificationsResource.update_channel_setting: `nexla_sdk/resources/notifications.py:218` -- NotificationsResource.update_setting: `nexla_sdk/resources/notifications.py:304` -- OrgAuthConfigsResource: `nexla_sdk/resources/org_auth_configs.py:7` -- OrgAuthConfigsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- OrgAuthConfigsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- OrgAuthConfigsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- OrgAuthConfigsResource.create: `nexla_sdk/resources/org_auth_configs.py:30` -- OrgAuthConfigsResource.delete: `nexla_sdk/resources/org_auth_configs.py:42` -- OrgAuthConfigsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- OrgAuthConfigsResource.get: `nexla_sdk/resources/org_auth_configs.py:25` -- OrgAuthConfigsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- OrgAuthConfigsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- OrgAuthConfigsResource.list: `nexla_sdk/resources/org_auth_configs.py:15` -- OrgAuthConfigsResource.list_all: `nexla_sdk/resources/org_auth_configs.py:20` -- OrgAuthConfigsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- OrgAuthConfigsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- OrgAuthConfigsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- OrgAuthConfigsResource.update: `nexla_sdk/resources/org_auth_configs.py:36` -- OrganizationsResource: `nexla_sdk/resources/organizations.py:15` -- OrganizationsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- OrganizationsResource.activate_members: `nexla_sdk/resources/organizations.py:164` -- OrganizationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- OrganizationsResource.add_custodians: `nexla_sdk/resources/organizations.py:291` -- OrganizationsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- OrganizationsResource.create: `nexla_sdk/resources/organizations.py:54` -- OrganizationsResource.deactivate_members: `nexla_sdk/resources/organizations.py:149` -- OrganizationsResource.delete: `nexla_sdk/resources/organizations.py:79` -- OrganizationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- OrganizationsResource.delete_members: `nexla_sdk/resources/organizations.py:135` -- OrganizationsResource.get: `nexla_sdk/resources/organizations.py:41` -- OrganizationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- OrganizationsResource.get_account_summary: `nexla_sdk/resources/organizations.py:179` -- OrganizationsResource.get_audit_log: `nexla_sdk/resources/organizations.py:212` -- OrganizationsResource.get_auth_settings: `nexla_sdk/resources/organizations.py:243` -- OrganizationsResource.get_current_account_summary: `nexla_sdk/resources/organizations.py:193` -- OrganizationsResource.get_custodians: `nexla_sdk/resources/organizations.py:276` -- OrganizationsResource.get_members: `nexla_sdk/resources/organizations.py:91` -- OrganizationsResource.get_org_flow_account_metrics: `nexla_sdk/resources/organizations.py:204` -- OrganizationsResource.get_resource_audit_log: `nexla_sdk/resources/organizations.py:227` -- OrganizationsResource.list: `nexla_sdk/resources/organizations.py:23` -- OrganizationsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- OrganizationsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- OrganizationsResource.remove_custodians: `nexla_sdk/resources/organizations.py:299` -- OrganizationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- OrganizationsResource.replace_members: `nexla_sdk/resources/organizations.py:120` -- OrganizationsResource.update: `nexla_sdk/resources/organizations.py:66` -- OrganizationsResource.update_auth_setting: `nexla_sdk/resources/organizations.py:256` -- OrganizationsResource.update_custodians: `nexla_sdk/resources/organizations.py:283` -- OrganizationsResource.update_members: `nexla_sdk/resources/organizations.py:105` -- ProjectsResource: `nexla_sdk/resources/projects.py:8` -- ProjectsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- ProjectsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- ProjectsResource.add_data_flows: `nexla_sdk/resources/projects.py:161` -- ProjectsResource.add_flows: `nexla_sdk/resources/projects.py:108` -- ProjectsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- ProjectsResource.create: `nexla_sdk/resources/projects.py:54` -- ProjectsResource.delete: `nexla_sdk/resources/projects.py:82` -- ProjectsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- ProjectsResource.get: `nexla_sdk/resources/projects.py:38` -- ProjectsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- ProjectsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- ProjectsResource.get_flows: `nexla_sdk/resources/projects.py:94` -- ProjectsResource.list: `nexla_sdk/resources/projects.py:16` -- ProjectsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- ProjectsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- ProjectsResource.remove_data_flows: `nexla_sdk/resources/projects.py:177` -- ProjectsResource.remove_flows: `nexla_sdk/resources/projects.py:142` -- ProjectsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- ProjectsResource.replace_data_flows: `nexla_sdk/resources/projects.py:169` -- ProjectsResource.replace_flows: `nexla_sdk/resources/projects.py:125` -- ProjectsResource.search_flows: `nexla_sdk/resources/projects.py:187` -- ProjectsResource.update: `nexla_sdk/resources/projects.py:69` -- RuntimesResource: `nexla_sdk/resources/runtimes.py:7` -- RuntimesResource.activate: `nexla_sdk/resources/runtimes.py:44` -- RuntimesResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- RuntimesResource.copy: `nexla_sdk/resources/base_resource.py:277` -- RuntimesResource.create: `nexla_sdk/resources/runtimes.py:20` -- RuntimesResource.delete: `nexla_sdk/resources/runtimes.py:39` -- RuntimesResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- RuntimesResource.get: `nexla_sdk/resources/runtimes.py:26` -- RuntimesResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- RuntimesResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- RuntimesResource.list: `nexla_sdk/resources/runtimes.py:15` -- RuntimesResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- RuntimesResource.pause: `nexla_sdk/resources/runtimes.py:50` -- RuntimesResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- RuntimesResource.update: `nexla_sdk/resources/runtimes.py:32` -- SelfSignupResource: `nexla_sdk/resources/self_signup.py:6` -- SelfSignupResource.activate: `nexla_sdk/resources/base_resource.py:249` -- SelfSignupResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- SelfSignupResource.add_blocked_domain: `nexla_sdk/resources/self_signup.py:34` -- SelfSignupResource.approve_request: `nexla_sdk/resources/self_signup.py:26` -- SelfSignupResource.copy: `nexla_sdk/resources/base_resource.py:277` -- SelfSignupResource.create: `nexla_sdk/resources/base_resource.py:199` -- SelfSignupResource.delete: `nexla_sdk/resources/base_resource.py:236` -- SelfSignupResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- SelfSignupResource.delete_blocked_domain: `nexla_sdk/resources/self_signup.py:42` -- SelfSignupResource.get: `nexla_sdk/resources/base_resource.py:175` -- SelfSignupResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- SelfSignupResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- SelfSignupResource.list: `nexla_sdk/resources/base_resource.py:106` -- SelfSignupResource.list_blocked_domains: `nexla_sdk/resources/self_signup.py:30` -- SelfSignupResource.list_requests: `nexla_sdk/resources/self_signup.py:22` -- SelfSignupResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- SelfSignupResource.pause: `nexla_sdk/resources/base_resource.py:263` -- SelfSignupResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- SelfSignupResource.signup: `nexla_sdk/resources/self_signup.py:15` -- SelfSignupResource.update: `nexla_sdk/resources/base_resource.py:220` -- SelfSignupResource.update_blocked_domain: `nexla_sdk/resources/self_signup.py:38` -- SelfSignupResource.verify_email: `nexla_sdk/resources/self_signup.py:18` -- SourcesResource: `nexla_sdk/resources/sources.py:7` -- SourcesResource.activate: `nexla_sdk/resources/sources.py:93` -- SourcesResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- SourcesResource.copy: `nexla_sdk/resources/sources.py:117` -- SourcesResource.create: `nexla_sdk/resources/sources.py:53` -- SourcesResource.delete: `nexla_sdk/resources/sources.py:81` -- SourcesResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- SourcesResource.get: `nexla_sdk/resources/sources.py:37` -- SourcesResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- SourcesResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- SourcesResource.list: `nexla_sdk/resources/sources.py:15` -- SourcesResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- SourcesResource.pause: `nexla_sdk/resources/sources.py:105` -- SourcesResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- SourcesResource.update: `nexla_sdk/resources/sources.py:68` -- TeamsResource: `nexla_sdk/resources/teams.py:7` -- TeamsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- TeamsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- TeamsResource.add_members: `nexla_sdk/resources/teams.py:103` -- TeamsResource.copy: `nexla_sdk/resources/base_resource.py:277` -- TeamsResource.create: `nexla_sdk/resources/teams.py:49` -- TeamsResource.delete: `nexla_sdk/resources/teams.py:77` -- TeamsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- TeamsResource.get: `nexla_sdk/resources/teams.py:33` -- TeamsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- TeamsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- TeamsResource.get_members: `nexla_sdk/resources/teams.py:89` -- TeamsResource.list: `nexla_sdk/resources/teams.py:15` -- TeamsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- TeamsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- TeamsResource.remove_members: `nexla_sdk/resources/teams.py:133` -- TeamsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- TeamsResource.replace_members: `nexla_sdk/resources/teams.py:118` -- TeamsResource.update: `nexla_sdk/resources/teams.py:64` -- TransformsResource: `nexla_sdk/resources/transforms.py:7` -- TransformsResource.activate: `nexla_sdk/resources/base_resource.py:249` -- TransformsResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- TransformsResource.copy: `nexla_sdk/resources/transforms.py:49` -- TransformsResource.create: `nexla_sdk/resources/transforms.py:37` -- TransformsResource.delete: `nexla_sdk/resources/transforms.py:45` -- TransformsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- TransformsResource.get: `nexla_sdk/resources/transforms.py:33` -- TransformsResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- TransformsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- TransformsResource.list: `nexla_sdk/resources/transforms.py:15` -- TransformsResource.list_public: `nexla_sdk/resources/transforms.py:53` -- TransformsResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- TransformsResource.pause: `nexla_sdk/resources/base_resource.py:263` -- TransformsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- TransformsResource.update: `nexla_sdk/resources/transforms.py:41` -- UsersResource: `nexla_sdk/resources/users.py:8` -- UsersResource.activate: `nexla_sdk/resources/base_resource.py:249` -- UsersResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- UsersResource.copy: `nexla_sdk/resources/base_resource.py:277` -- UsersResource.create: `nexla_sdk/resources/users.py:62` -- UsersResource.create_quarantine_settings: `nexla_sdk/resources/users.py:131` -- UsersResource.delete: `nexla_sdk/resources/users.py:90` -- UsersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- UsersResource.delete_quarantine_settings: `nexla_sdk/resources/users.py:169` -- UsersResource.get: `nexla_sdk/resources/users.py:40` -- UsersResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- UsersResource.get_account_metrics: `nexla_sdk/resources/users.py:224` -- UsersResource.get_audit_log: `nexla_sdk/resources/users.py:182` -- UsersResource.get_current: `nexla_sdk/resources/users.py:113` -- UsersResource.get_daily_metrics: `nexla_sdk/resources/users.py:270` -- UsersResource.get_dashboard_metrics: `nexla_sdk/resources/users.py:250` -- UsersResource.get_quarantine_settings: `nexla_sdk/resources/users.py:118` -- UsersResource.get_settings: `nexla_sdk/resources/users.py:102` -- UsersResource.get_transferable_resources: `nexla_sdk/resources/users.py:190` -- UsersResource.list: `nexla_sdk/resources/users.py:16` -- UsersResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- UsersResource.pause: `nexla_sdk/resources/base_resource.py:263` -- UsersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- UsersResource.transfer_resources: `nexla_sdk/resources/users.py:205` -- UsersResource.update: `nexla_sdk/resources/users.py:77` -- UsersResource.update_quarantine_settings: `nexla_sdk/resources/users.py:153` +- ApprovalRequestsResource: `nexla_sdk/resources/approval_requests.py:7` +- ApprovalRequestsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- ApprovalRequestsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- ApprovalRequestsResource.approve: `nexla_sdk/resources/approval_requests.py:25` +- ApprovalRequestsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- ApprovalRequestsResource.create: `nexla_sdk/resources/base_resource.py:229` +- ApprovalRequestsResource.delete: `nexla_sdk/resources/base_resource.py:274` +- ApprovalRequestsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- ApprovalRequestsResource.get: `nexla_sdk/resources/base_resource.py:199` +- ApprovalRequestsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- ApprovalRequestsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- ApprovalRequestsResource.list: `nexla_sdk/resources/base_resource.py:130` +- ApprovalRequestsResource.list_pending: `nexla_sdk/resources/approval_requests.py:15` +- ApprovalRequestsResource.list_requested: `nexla_sdk/resources/approval_requests.py:20` +- ApprovalRequestsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- ApprovalRequestsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- ApprovalRequestsResource.reject: `nexla_sdk/resources/approval_requests.py:30` +- ApprovalRequestsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- ApprovalRequestsResource.update: `nexla_sdk/resources/base_resource.py:252` +- AsyncTasksResource: `nexla_sdk/resources/async_tasks.py:8` +- AsyncTasksResource.acknowledge: `nexla_sdk/resources/async_tasks.py:73` +- AsyncTasksResource.activate: `nexla_sdk/resources/base_resource.py:289` +- AsyncTasksResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- AsyncTasksResource.copy: `nexla_sdk/resources/base_resource.py:321` +- AsyncTasksResource.create: `nexla_sdk/resources/async_tasks.py:21` +- AsyncTasksResource.delete: `nexla_sdk/resources/async_tasks.py:50` +- AsyncTasksResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- AsyncTasksResource.download_link: `nexla_sdk/resources/async_tasks.py:63` +- AsyncTasksResource.explain_arguments: `nexla_sdk/resources/async_tasks.py:41` +- AsyncTasksResource.get: `nexla_sdk/resources/async_tasks.py:45` +- AsyncTasksResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- AsyncTasksResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- AsyncTasksResource.list: `nexla_sdk/resources/async_tasks.py:16` +- AsyncTasksResource.list_by_status: `nexla_sdk/resources/async_tasks.py:32` +- AsyncTasksResource.list_of_type: `nexla_sdk/resources/async_tasks.py:27` +- AsyncTasksResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- AsyncTasksResource.pause: `nexla_sdk/resources/base_resource.py:305` +- AsyncTasksResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- AsyncTasksResource.rerun: `nexla_sdk/resources/async_tasks.py:54` +- AsyncTasksResource.result: `nexla_sdk/resources/async_tasks.py:59` +- AsyncTasksResource.types: `nexla_sdk/resources/async_tasks.py:37` +- AsyncTasksResource.update: `nexla_sdk/resources/base_resource.py:252` +- AttributeTransformsResource: `nexla_sdk/resources/attribute_transforms.py:11` +- AttributeTransformsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- AttributeTransformsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- AttributeTransformsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- AttributeTransformsResource.create: `nexla_sdk/resources/attribute_transforms.py:43` +- AttributeTransformsResource.delete: `nexla_sdk/resources/attribute_transforms.py:53` +- AttributeTransformsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- AttributeTransformsResource.get: `nexla_sdk/resources/attribute_transforms.py:37` +- AttributeTransformsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- AttributeTransformsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- AttributeTransformsResource.list: `nexla_sdk/resources/attribute_transforms.py:19` +- AttributeTransformsResource.list_public: `nexla_sdk/resources/attribute_transforms.py:57` +- AttributeTransformsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- AttributeTransformsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- AttributeTransformsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- AttributeTransformsResource.update: `nexla_sdk/resources/attribute_transforms.py:47` +- BaseResource: `nexla_sdk/resources/base_resource.py:15` +- BaseResource.activate: `nexla_sdk/resources/base_resource.py:289` +- BaseResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- BaseResource.copy: `nexla_sdk/resources/base_resource.py:321` +- BaseResource.create: `nexla_sdk/resources/base_resource.py:229` +- BaseResource.delete: `nexla_sdk/resources/base_resource.py:274` +- BaseResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- BaseResource.get: `nexla_sdk/resources/base_resource.py:199` +- BaseResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- BaseResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- BaseResource.list: `nexla_sdk/resources/base_resource.py:130` +- BaseResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- BaseResource.pause: `nexla_sdk/resources/base_resource.py:305` +- BaseResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- BaseResource.update: `nexla_sdk/resources/base_resource.py:252` +- CodeContainersResource: `nexla_sdk/resources/code_containers.py:11` +- CodeContainersResource.activate: `nexla_sdk/resources/base_resource.py:289` +- CodeContainersResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- CodeContainersResource.copy: `nexla_sdk/resources/code_containers.py:67` +- CodeContainersResource.create: `nexla_sdk/resources/code_containers.py:45` +- CodeContainersResource.delete: `nexla_sdk/resources/code_containers.py:63` +- CodeContainersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- CodeContainersResource.get: `nexla_sdk/resources/code_containers.py:37` +- CodeContainersResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- CodeContainersResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- CodeContainersResource.list: `nexla_sdk/resources/code_containers.py:19` +- CodeContainersResource.list_public: `nexla_sdk/resources/code_containers.py:71` +- CodeContainersResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- CodeContainersResource.pause: `nexla_sdk/resources/base_resource.py:305` +- CodeContainersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- CodeContainersResource.update: `nexla_sdk/resources/code_containers.py:53` +- CredentialsResource: `nexla_sdk/resources/credentials.py:19` +- CredentialsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- CredentialsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- CredentialsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- CredentialsResource.create: `nexla_sdk/resources/credentials.py:75` +- CredentialsResource.delete: `nexla_sdk/resources/credentials.py:105` +- CredentialsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- CredentialsResource.get: `nexla_sdk/resources/credentials.py:59` +- CredentialsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- CredentialsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- CredentialsResource.list: `nexla_sdk/resources/credentials.py:27` +- CredentialsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- CredentialsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- CredentialsResource.probe: `nexla_sdk/resources/credentials.py:117` +- CredentialsResource.probe_sample: `nexla_sdk/resources/credentials.py:183` +- CredentialsResource.probe_tree: `nexla_sdk/resources/credentials.py:155` +- CredentialsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- CredentialsResource.update: `nexla_sdk/resources/credentials.py:92` +- DataSchemasResource: `nexla_sdk/resources/data_schemas.py:7` +- DataSchemasResource.activate: `nexla_sdk/resources/base_resource.py:289` +- DataSchemasResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- DataSchemasResource.copy: `nexla_sdk/resources/base_resource.py:321` +- DataSchemasResource.create: `nexla_sdk/resources/base_resource.py:229` +- DataSchemasResource.delete: `nexla_sdk/resources/base_resource.py:274` +- DataSchemasResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- DataSchemasResource.get: `nexla_sdk/resources/base_resource.py:199` +- DataSchemasResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- DataSchemasResource.get_audit_log: `nexla_sdk/resources/data_schemas.py:15` +- DataSchemasResource.list: `nexla_sdk/resources/base_resource.py:130` +- DataSchemasResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- DataSchemasResource.pause: `nexla_sdk/resources/base_resource.py:305` +- DataSchemasResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- DataSchemasResource.update: `nexla_sdk/resources/base_resource.py:252` +- DestinationsResource: `nexla_sdk/resources/destinations.py:12` +- DestinationsResource.activate: `nexla_sdk/resources/destinations.py:94` +- DestinationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- DestinationsResource.copy: `nexla_sdk/resources/destinations.py:118` +- DestinationsResource.create: `nexla_sdk/resources/destinations.py:54` +- DestinationsResource.delete: `nexla_sdk/resources/destinations.py:82` +- DestinationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- DestinationsResource.get: `nexla_sdk/resources/destinations.py:38` +- DestinationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- DestinationsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- DestinationsResource.list: `nexla_sdk/resources/destinations.py:20` +- DestinationsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- DestinationsResource.pause: `nexla_sdk/resources/destinations.py:106` +- DestinationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- DestinationsResource.update: `nexla_sdk/resources/destinations.py:69` +- DocContainersResource: `nexla_sdk/resources/doc_containers.py:7` +- DocContainersResource.activate: `nexla_sdk/resources/base_resource.py:289` +- DocContainersResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- DocContainersResource.copy: `nexla_sdk/resources/base_resource.py:321` +- DocContainersResource.create: `nexla_sdk/resources/base_resource.py:229` +- DocContainersResource.delete: `nexla_sdk/resources/base_resource.py:274` +- DocContainersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- DocContainersResource.get: `nexla_sdk/resources/base_resource.py:199` +- DocContainersResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- DocContainersResource.get_audit_log: `nexla_sdk/resources/doc_containers.py:15` +- DocContainersResource.list: `nexla_sdk/resources/base_resource.py:130` +- DocContainersResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- DocContainersResource.pause: `nexla_sdk/resources/base_resource.py:305` +- DocContainersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- DocContainersResource.update: `nexla_sdk/resources/base_resource.py:252` +- FlowsResource: `nexla_sdk/resources/flows.py:21` +- FlowsResource.activate: `nexla_sdk/resources/flows.py:117` +- FlowsResource.activate_by_resource: `nexla_sdk/resources/flows.py:314` +- FlowsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- FlowsResource.copy: `nexla_sdk/resources/flows.py:171` +- FlowsResource.copy_and_replace_credentials: `nexla_sdk/resources/flows.py:186` +- FlowsResource.create: `nexla_sdk/resources/base_resource.py:229` +- FlowsResource.delete: `nexla_sdk/resources/flows.py:282` +- FlowsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- FlowsResource.delete_by_resource: `nexla_sdk/resources/flows.py:294` +- FlowsResource.docs_recommendation: `nexla_sdk/resources/flows.py:378` +- FlowsResource.get: `nexla_sdk/resources/flows.py:67` +- FlowsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- FlowsResource.get_active_flows_metrics: `nexla_sdk/resources/flows.py:475` +- FlowsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- FlowsResource.get_by_resource: `nexla_sdk/resources/flows.py:90` +- FlowsResource.get_flow_logs: `nexla_sdk/resources/flows.py:397` +- FlowsResource.get_logs: `nexla_sdk/resources/flows.py:529` +- FlowsResource.get_metrics: `nexla_sdk/resources/flows.py:581` +- FlowsResource.get_run_status: `nexla_sdk/resources/flows.py:499` +- FlowsResource.list: `nexla_sdk/resources/flows.py:29` +- FlowsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- FlowsResource.pause: `nexla_sdk/resources/flows.py:140` +- FlowsResource.pause_by_resource: `nexla_sdk/resources/flows.py:346` +- FlowsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- FlowsResource.search_flow_logs: `nexla_sdk/resources/flows.py:438` +- FlowsResource.update: `nexla_sdk/resources/base_resource.py:252` +- GenAIResource: `nexla_sdk/resources/genai.py:16` +- GenAIResource.activate: `nexla_sdk/resources/base_resource.py:289` +- GenAIResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- GenAIResource.copy: `nexla_sdk/resources/base_resource.py:321` +- GenAIResource.create: `nexla_sdk/resources/base_resource.py:229` +- GenAIResource.create_config: `nexla_sdk/resources/genai.py:29` +- GenAIResource.create_org_setting: `nexla_sdk/resources/genai.py:66` +- GenAIResource.delete: `nexla_sdk/resources/base_resource.py:274` +- GenAIResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- GenAIResource.delete_config: `nexla_sdk/resources/genai.py:49` +- GenAIResource.delete_org_setting: `nexla_sdk/resources/genai.py:77` +- GenAIResource.get: `nexla_sdk/resources/base_resource.py:199` +- GenAIResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- GenAIResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- GenAIResource.get_config: `nexla_sdk/resources/genai.py:34` +- GenAIResource.get_org_setting: `nexla_sdk/resources/genai.py:71` +- GenAIResource.list: `nexla_sdk/resources/base_resource.py:130` +- GenAIResource.list_configs: `nexla_sdk/resources/genai.py:25` +- GenAIResource.list_org_settings: `nexla_sdk/resources/genai.py:55` +- GenAIResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- GenAIResource.pause: `nexla_sdk/resources/base_resource.py:305` +- GenAIResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- GenAIResource.show_active_config: `nexla_sdk/resources/genai.py:82` +- GenAIResource.update: `nexla_sdk/resources/base_resource.py:252` +- GenAIResource.update_config: `nexla_sdk/resources/genai.py:40` +- LookupsResource: `nexla_sdk/resources/lookups.py:14` +- LookupsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- LookupsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- LookupsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- LookupsResource.create: `nexla_sdk/resources/lookups.py:56` +- LookupsResource.delete: `nexla_sdk/resources/lookups.py:84` +- LookupsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- LookupsResource.delete_entries: `nexla_sdk/resources/lookups.py:137` +- LookupsResource.get: `nexla_sdk/resources/lookups.py:40` +- LookupsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- LookupsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- LookupsResource.get_entries: `nexla_sdk/resources/lookups.py:116` +- LookupsResource.list: `nexla_sdk/resources/lookups.py:22` +- LookupsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- LookupsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- LookupsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- LookupsResource.update: `nexla_sdk/resources/lookups.py:71` +- LookupsResource.upsert_entries: `nexla_sdk/resources/lookups.py:96` +- MarketplaceResource: `nexla_sdk/resources/marketplace.py:16` +- MarketplaceResource.activate: `nexla_sdk/resources/base_resource.py:289` +- MarketplaceResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- MarketplaceResource.add_domain_custodians: `nexla_sdk/resources/marketplace.py:91` +- MarketplaceResource.copy: `nexla_sdk/resources/base_resource.py:321` +- MarketplaceResource.create: `nexla_sdk/resources/base_resource.py:229` +- MarketplaceResource.create_domain: `nexla_sdk/resources/marketplace.py:53` +- MarketplaceResource.create_domain_item: `nexla_sdk/resources/marketplace.py:66` +- MarketplaceResource.create_domains: `nexla_sdk/resources/marketplace.py:29` +- MarketplaceResource.delete: `nexla_sdk/resources/base_resource.py:274` +- MarketplaceResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- MarketplaceResource.delete_domain: `nexla_sdk/resources/marketplace.py:58` +- MarketplaceResource.get: `nexla_sdk/resources/base_resource.py:199` +- MarketplaceResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- MarketplaceResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- MarketplaceResource.get_domain: `nexla_sdk/resources/marketplace.py:40` +- MarketplaceResource.get_domains_for_org: `nexla_sdk/resources/marketplace.py:34` +- MarketplaceResource.list: `nexla_sdk/resources/base_resource.py:130` +- MarketplaceResource.list_domain_custodians: `nexla_sdk/resources/marketplace.py:76` +- MarketplaceResource.list_domain_items: `nexla_sdk/resources/marketplace.py:62` +- MarketplaceResource.list_domains: `nexla_sdk/resources/marketplace.py:25` +- MarketplaceResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- MarketplaceResource.pause: `nexla_sdk/resources/base_resource.py:305` +- MarketplaceResource.remove_domain_custodians: `nexla_sdk/resources/marketplace.py:100` +- MarketplaceResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- MarketplaceResource.update: `nexla_sdk/resources/base_resource.py:252` +- MarketplaceResource.update_domain: `nexla_sdk/resources/marketplace.py:44` +- MarketplaceResource.update_domain_custodians: `nexla_sdk/resources/marketplace.py:82` +- MetricsResource: `nexla_sdk/resources/metrics.py:26` +- MetricsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- MetricsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- MetricsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- MetricsResource.create: `nexla_sdk/resources/base_resource.py:229` +- MetricsResource.delete: `nexla_sdk/resources/base_resource.py:274` +- MetricsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- MetricsResource.get: `nexla_sdk/resources/base_resource.py:199` +- MetricsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- MetricsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- MetricsResource.get_flow_logs: `nexla_sdk/resources/metrics.py:216` +- MetricsResource.get_flow_metrics: `nexla_sdk/resources/metrics.py:162` +- MetricsResource.get_flow_metrics_summary: `nexla_sdk/resources/metrics.py:148` +- MetricsResource.get_rate_limits: `nexla_sdk/resources/metrics.py:111` +- MetricsResource.get_resource_daily_metrics: `nexla_sdk/resources/metrics.py:39` +- MetricsResource.get_resource_flow_metrics: `nexla_sdk/resources/metrics.py:121` +- MetricsResource.get_resource_metrics_by_run: `nexla_sdk/resources/metrics.py:70` +- MetricsResource.list: `nexla_sdk/resources/base_resource.py:130` +- MetricsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- MetricsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- MetricsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- MetricsResource.update: `nexla_sdk/resources/base_resource.py:252` +- NexsetsResource: `nexla_sdk/resources/nexsets.py:12` +- NexsetsResource.activate: `nexla_sdk/resources/nexsets.py:94` +- NexsetsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- NexsetsResource.copy: `nexla_sdk/resources/nexsets.py:147` +- NexsetsResource.create: `nexla_sdk/resources/nexsets.py:54` +- NexsetsResource.delete: `nexla_sdk/resources/nexsets.py:82` +- NexsetsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- NexsetsResource.docs_recommendation: `nexla_sdk/resources/nexsets.py:161` +- NexsetsResource.get: `nexla_sdk/resources/nexsets.py:38` +- NexsetsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- NexsetsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- NexsetsResource.get_samples: `nexla_sdk/resources/nexsets.py:118` +- NexsetsResource.list: `nexla_sdk/resources/nexsets.py:20` +- NexsetsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- NexsetsResource.pause: `nexla_sdk/resources/nexsets.py:106` +- NexsetsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- NexsetsResource.update: `nexla_sdk/resources/nexsets.py:69` +- NotificationsResource: `nexla_sdk/resources/notifications.py:19` +- NotificationsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- NotificationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- NotificationsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- NotificationsResource.create: `nexla_sdk/resources/base_resource.py:229` +- NotificationsResource.create_channel_setting: `nexla_sdk/resources/notifications.py:195` +- NotificationsResource.create_setting: `nexla_sdk/resources/notifications.py:285` +- NotificationsResource.delete: `nexla_sdk/resources/notifications.py:40` +- NotificationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- NotificationsResource.delete_all: `nexla_sdk/resources/notifications.py:90` +- NotificationsResource.delete_channel_setting: `nexla_sdk/resources/notifications.py:242` +- NotificationsResource.delete_setting: `nexla_sdk/resources/notifications.py:330` +- NotificationsResource.get: `nexla_sdk/resources/notifications.py:27` +- NotificationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- NotificationsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- NotificationsResource.get_channel_setting: `nexla_sdk/resources/notifications.py:211` +- NotificationsResource.get_count: `nexla_sdk/resources/notifications.py:100` +- NotificationsResource.get_resource_settings: `nexla_sdk/resources/notifications.py:361` +- NotificationsResource.get_setting: `nexla_sdk/resources/notifications.py:299` +- NotificationsResource.get_settings_by_type: `nexla_sdk/resources/notifications.py:343` +- NotificationsResource.get_type: `nexla_sdk/resources/notifications.py:167` +- NotificationsResource.get_types: `nexla_sdk/resources/notifications.py:152` +- NotificationsResource.list: `nexla_sdk/resources/notifications.py:52` +- NotificationsResource.list_channel_settings: `nexla_sdk/resources/notifications.py:184` +- NotificationsResource.list_settings: `nexla_sdk/resources/notifications.py:256` +- NotificationsResource.mark_read: `nexla_sdk/resources/notifications.py:115` +- NotificationsResource.mark_unread: `nexla_sdk/resources/notifications.py:133` +- NotificationsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- NotificationsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- NotificationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- NotificationsResource.update: `nexla_sdk/resources/base_resource.py:252` +- NotificationsResource.update_channel_setting: `nexla_sdk/resources/notifications.py:225` +- NotificationsResource.update_setting: `nexla_sdk/resources/notifications.py:313` +- OrgAuthConfigsResource: `nexla_sdk/resources/org_auth_configs.py:8` +- OrgAuthConfigsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- OrgAuthConfigsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- OrgAuthConfigsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- OrgAuthConfigsResource.create: `nexla_sdk/resources/org_auth_configs.py:31` +- OrgAuthConfigsResource.delete: `nexla_sdk/resources/org_auth_configs.py:45` +- OrgAuthConfigsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- OrgAuthConfigsResource.get: `nexla_sdk/resources/org_auth_configs.py:26` +- OrgAuthConfigsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- OrgAuthConfigsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- OrgAuthConfigsResource.list: `nexla_sdk/resources/org_auth_configs.py:16` +- OrgAuthConfigsResource.list_all: `nexla_sdk/resources/org_auth_configs.py:21` +- OrgAuthConfigsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- OrgAuthConfigsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- OrgAuthConfigsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- OrgAuthConfigsResource.update: `nexla_sdk/resources/org_auth_configs.py:37` +- OrganizationsResource: `nexla_sdk/resources/organizations.py:22` +- OrganizationsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- OrganizationsResource.activate_members: `nexla_sdk/resources/organizations.py:173` +- OrganizationsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- OrganizationsResource.add_custodians: `nexla_sdk/resources/organizations.py:365` +- OrganizationsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- OrganizationsResource.create: `nexla_sdk/resources/organizations.py:61` +- OrganizationsResource.deactivate_members: `nexla_sdk/resources/organizations.py:156` +- OrganizationsResource.delete: `nexla_sdk/resources/organizations.py:86` +- OrganizationsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- OrganizationsResource.delete_members: `nexla_sdk/resources/organizations.py:142` +- OrganizationsResource.get: `nexla_sdk/resources/organizations.py:48` +- OrganizationsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- OrganizationsResource.get_account_summary: `nexla_sdk/resources/organizations.py:190` +- OrganizationsResource.get_audit_log: `nexla_sdk/resources/organizations.py:227` +- OrganizationsResource.get_auth_settings: `nexla_sdk/resources/organizations.py:316` +- OrganizationsResource.get_current_account_summary: `nexla_sdk/resources/organizations.py:204` +- OrganizationsResource.get_custodians: `nexla_sdk/resources/organizations.py:348` +- OrganizationsResource.get_flow_status_metrics: `nexla_sdk/resources/organizations.py:269` +- OrganizationsResource.get_members: `nexla_sdk/resources/organizations.py:98` +- OrganizationsResource.get_org_flow_account_metrics: `nexla_sdk/resources/organizations.py:215` +- OrganizationsResource.get_resource_audit_log: `nexla_sdk/resources/organizations.py:294` +- OrganizationsResource.list: `nexla_sdk/resources/organizations.py:30` +- OrganizationsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- OrganizationsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- OrganizationsResource.remove_custodians: `nexla_sdk/resources/organizations.py:375` +- OrganizationsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- OrganizationsResource.replace_members: `nexla_sdk/resources/organizations.py:127` +- OrganizationsResource.update: `nexla_sdk/resources/organizations.py:73` +- OrganizationsResource.update_auth_setting: `nexla_sdk/resources/organizations.py:329` +- OrganizationsResource.update_custodians: `nexla_sdk/resources/organizations.py:355` +- OrganizationsResource.update_members: `nexla_sdk/resources/organizations.py:112` +- ProjectsResource: `nexla_sdk/resources/projects.py:13` +- ProjectsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- ProjectsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- ProjectsResource.add_data_flows: `nexla_sdk/resources/projects.py:170` +- ProjectsResource.add_flows: `nexla_sdk/resources/projects.py:113` +- ProjectsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- ProjectsResource.create: `nexla_sdk/resources/projects.py:59` +- ProjectsResource.delete: `nexla_sdk/resources/projects.py:87` +- ProjectsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- ProjectsResource.get: `nexla_sdk/resources/projects.py:43` +- ProjectsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- ProjectsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- ProjectsResource.get_flows: `nexla_sdk/resources/projects.py:99` +- ProjectsResource.list: `nexla_sdk/resources/projects.py:21` +- ProjectsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- ProjectsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- ProjectsResource.remove_data_flows: `nexla_sdk/resources/projects.py:190` +- ProjectsResource.remove_flows: `nexla_sdk/resources/projects.py:151` +- ProjectsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- ProjectsResource.replace_data_flows: `nexla_sdk/resources/projects.py:180` +- ProjectsResource.replace_flows: `nexla_sdk/resources/projects.py:132` +- ProjectsResource.search_flows: `nexla_sdk/resources/projects.py:200` +- ProjectsResource.update: `nexla_sdk/resources/projects.py:74` +- RuntimesResource: `nexla_sdk/resources/runtimes.py:8` +- RuntimesResource.activate: `nexla_sdk/resources/runtimes.py:45` +- RuntimesResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- RuntimesResource.copy: `nexla_sdk/resources/base_resource.py:321` +- RuntimesResource.create: `nexla_sdk/resources/runtimes.py:21` +- RuntimesResource.delete: `nexla_sdk/resources/runtimes.py:40` +- RuntimesResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- RuntimesResource.get: `nexla_sdk/resources/runtimes.py:27` +- RuntimesResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- RuntimesResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- RuntimesResource.list: `nexla_sdk/resources/runtimes.py:16` +- RuntimesResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- RuntimesResource.pause: `nexla_sdk/resources/runtimes.py:51` +- RuntimesResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- RuntimesResource.update: `nexla_sdk/resources/runtimes.py:33` +- SelfSignupResource: `nexla_sdk/resources/self_signup.py:7` +- SelfSignupResource.activate: `nexla_sdk/resources/base_resource.py:289` +- SelfSignupResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- SelfSignupResource.add_blocked_domain: `nexla_sdk/resources/self_signup.py:39` +- SelfSignupResource.approve_request: `nexla_sdk/resources/self_signup.py:29` +- SelfSignupResource.copy: `nexla_sdk/resources/base_resource.py:321` +- SelfSignupResource.create: `nexla_sdk/resources/base_resource.py:229` +- SelfSignupResource.delete: `nexla_sdk/resources/base_resource.py:274` +- SelfSignupResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- SelfSignupResource.delete_blocked_domain: `nexla_sdk/resources/self_signup.py:51` +- SelfSignupResource.get: `nexla_sdk/resources/base_resource.py:199` +- SelfSignupResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- SelfSignupResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- SelfSignupResource.list: `nexla_sdk/resources/base_resource.py:130` +- SelfSignupResource.list_blocked_domains: `nexla_sdk/resources/self_signup.py:35` +- SelfSignupResource.list_requests: `nexla_sdk/resources/self_signup.py:25` +- SelfSignupResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- SelfSignupResource.pause: `nexla_sdk/resources/base_resource.py:305` +- SelfSignupResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- SelfSignupResource.signup: `nexla_sdk/resources/self_signup.py:16` +- SelfSignupResource.update: `nexla_sdk/resources/base_resource.py:252` +- SelfSignupResource.update_blocked_domain: `nexla_sdk/resources/self_signup.py:45` +- SelfSignupResource.verify_email: `nexla_sdk/resources/self_signup.py:19` +- SourcesResource: `nexla_sdk/resources/sources.py:12` +- SourcesResource.activate: `nexla_sdk/resources/sources.py:98` +- SourcesResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- SourcesResource.copy: `nexla_sdk/resources/sources.py:122` +- SourcesResource.create: `nexla_sdk/resources/sources.py:58` +- SourcesResource.delete: `nexla_sdk/resources/sources.py:86` +- SourcesResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- SourcesResource.get: `nexla_sdk/resources/sources.py:42` +- SourcesResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- SourcesResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- SourcesResource.list: `nexla_sdk/resources/sources.py:20` +- SourcesResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- SourcesResource.pause: `nexla_sdk/resources/sources.py:110` +- SourcesResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- SourcesResource.update: `nexla_sdk/resources/sources.py:73` +- TeamsResource: `nexla_sdk/resources/teams.py:8` +- TeamsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- TeamsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- TeamsResource.add_members: `nexla_sdk/resources/teams.py:104` +- TeamsResource.copy: `nexla_sdk/resources/base_resource.py:321` +- TeamsResource.create: `nexla_sdk/resources/teams.py:50` +- TeamsResource.delete: `nexla_sdk/resources/teams.py:78` +- TeamsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- TeamsResource.get: `nexla_sdk/resources/teams.py:34` +- TeamsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- TeamsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- TeamsResource.get_members: `nexla_sdk/resources/teams.py:90` +- TeamsResource.list: `nexla_sdk/resources/teams.py:16` +- TeamsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- TeamsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- TeamsResource.remove_members: `nexla_sdk/resources/teams.py:136` +- TeamsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- TeamsResource.replace_members: `nexla_sdk/resources/teams.py:119` +- TeamsResource.update: `nexla_sdk/resources/teams.py:65` +- TransformsResource: `nexla_sdk/resources/transforms.py:8` +- TransformsResource.activate: `nexla_sdk/resources/base_resource.py:289` +- TransformsResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- TransformsResource.copy: `nexla_sdk/resources/transforms.py:50` +- TransformsResource.create: `nexla_sdk/resources/transforms.py:38` +- TransformsResource.delete: `nexla_sdk/resources/transforms.py:46` +- TransformsResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- TransformsResource.get: `nexla_sdk/resources/transforms.py:34` +- TransformsResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- TransformsResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- TransformsResource.list: `nexla_sdk/resources/transforms.py:16` +- TransformsResource.list_public: `nexla_sdk/resources/transforms.py:54` +- TransformsResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- TransformsResource.pause: `nexla_sdk/resources/base_resource.py:305` +- TransformsResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- TransformsResource.update: `nexla_sdk/resources/transforms.py:42` +- UsersResource: `nexla_sdk/resources/users.py:9` +- UsersResource.activate: `nexla_sdk/resources/base_resource.py:289` +- UsersResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- UsersResource.copy: `nexla_sdk/resources/base_resource.py:321` +- UsersResource.create: `nexla_sdk/resources/users.py:65` +- UsersResource.create_quarantine_settings: `nexla_sdk/resources/users.py:134` +- UsersResource.delete: `nexla_sdk/resources/users.py:93` +- UsersResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- UsersResource.delete_quarantine_settings: `nexla_sdk/resources/users.py:168` +- UsersResource.get: `nexla_sdk/resources/users.py:43` +- UsersResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- UsersResource.get_account_metrics: `nexla_sdk/resources/users.py:258` +- UsersResource.get_audit_log: `nexla_sdk/resources/users.py:181` +- UsersResource.get_current: `nexla_sdk/resources/users.py:116` +- UsersResource.get_daily_metrics: `nexla_sdk/resources/users.py:339` +- UsersResource.get_dashboard_metrics: `nexla_sdk/resources/users.py:319` +- UsersResource.get_flow_status_metrics: `nexla_sdk/resources/users.py:290` +- UsersResource.get_quarantine_settings: `nexla_sdk/resources/users.py:121` +- UsersResource.get_settings: `nexla_sdk/resources/users.py:105` +- UsersResource.get_transferable_resources: `nexla_sdk/resources/users.py:225` +- UsersResource.list: `nexla_sdk/resources/users.py:17` +- UsersResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- UsersResource.pause: `nexla_sdk/resources/base_resource.py:305` +- UsersResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- UsersResource.transfer_resources: `nexla_sdk/resources/users.py:240` +- UsersResource.update: `nexla_sdk/resources/users.py:80` +- UsersResource.update_quarantine_settings: `nexla_sdk/resources/users.py:152` ### nexla_sdk.resources.approval_requests -- ApprovalRequestsResource: `nexla_sdk/resources/approval_requests.py:6` -- ApprovalRequestsResource.approve: `nexla_sdk/resources/approval_requests.py:24` -- ApprovalRequestsResource.list_pending: `nexla_sdk/resources/approval_requests.py:14` -- ApprovalRequestsResource.list_requested: `nexla_sdk/resources/approval_requests.py:19` -- ApprovalRequestsResource.reject: `nexla_sdk/resources/approval_requests.py:29` +- ApprovalRequestsResource: `nexla_sdk/resources/approval_requests.py:7` +- ApprovalRequestsResource.approve: `nexla_sdk/resources/approval_requests.py:25` +- ApprovalRequestsResource.list_pending: `nexla_sdk/resources/approval_requests.py:15` +- ApprovalRequestsResource.list_requested: `nexla_sdk/resources/approval_requests.py:20` +- ApprovalRequestsResource.reject: `nexla_sdk/resources/approval_requests.py:30` ### nexla_sdk.resources.async_tasks -- AsyncTasksResource: `nexla_sdk/resources/async_tasks.py:7` -- AsyncTasksResource.acknowledge: `nexla_sdk/resources/async_tasks.py:72` -- AsyncTasksResource.create: `nexla_sdk/resources/async_tasks.py:20` -- AsyncTasksResource.delete: `nexla_sdk/resources/async_tasks.py:49` -- AsyncTasksResource.download_link: `nexla_sdk/resources/async_tasks.py:62` -- AsyncTasksResource.explain_arguments: `nexla_sdk/resources/async_tasks.py:40` -- AsyncTasksResource.get: `nexla_sdk/resources/async_tasks.py:44` -- AsyncTasksResource.list: `nexla_sdk/resources/async_tasks.py:15` -- AsyncTasksResource.list_by_status: `nexla_sdk/resources/async_tasks.py:31` -- AsyncTasksResource.list_of_type: `nexla_sdk/resources/async_tasks.py:26` -- AsyncTasksResource.rerun: `nexla_sdk/resources/async_tasks.py:53` -- AsyncTasksResource.result: `nexla_sdk/resources/async_tasks.py:58` -- AsyncTasksResource.types: `nexla_sdk/resources/async_tasks.py:36` +- AsyncTasksResource: `nexla_sdk/resources/async_tasks.py:8` +- AsyncTasksResource.acknowledge: `nexla_sdk/resources/async_tasks.py:73` +- AsyncTasksResource.create: `nexla_sdk/resources/async_tasks.py:21` +- AsyncTasksResource.delete: `nexla_sdk/resources/async_tasks.py:50` +- AsyncTasksResource.download_link: `nexla_sdk/resources/async_tasks.py:63` +- AsyncTasksResource.explain_arguments: `nexla_sdk/resources/async_tasks.py:41` +- AsyncTasksResource.get: `nexla_sdk/resources/async_tasks.py:45` +- AsyncTasksResource.list: `nexla_sdk/resources/async_tasks.py:16` +- AsyncTasksResource.list_by_status: `nexla_sdk/resources/async_tasks.py:32` +- AsyncTasksResource.list_of_type: `nexla_sdk/resources/async_tasks.py:27` +- AsyncTasksResource.rerun: `nexla_sdk/resources/async_tasks.py:54` +- AsyncTasksResource.result: `nexla_sdk/resources/async_tasks.py:59` +- AsyncTasksResource.types: `nexla_sdk/resources/async_tasks.py:37` ### nexla_sdk.resources.attribute_transforms -- AttributeTransformsResource: `nexla_sdk/resources/attribute_transforms.py:9` -- AttributeTransformsResource.create: `nexla_sdk/resources/attribute_transforms.py:39` -- AttributeTransformsResource.delete: `nexla_sdk/resources/attribute_transforms.py:47` -- AttributeTransformsResource.get: `nexla_sdk/resources/attribute_transforms.py:35` -- AttributeTransformsResource.list: `nexla_sdk/resources/attribute_transforms.py:17` -- AttributeTransformsResource.list_public: `nexla_sdk/resources/attribute_transforms.py:51` -- AttributeTransformsResource.update: `nexla_sdk/resources/attribute_transforms.py:43` +- AttributeTransformsResource: `nexla_sdk/resources/attribute_transforms.py:11` +- AttributeTransformsResource.create: `nexla_sdk/resources/attribute_transforms.py:43` +- AttributeTransformsResource.delete: `nexla_sdk/resources/attribute_transforms.py:53` +- AttributeTransformsResource.get: `nexla_sdk/resources/attribute_transforms.py:37` +- AttributeTransformsResource.list: `nexla_sdk/resources/attribute_transforms.py:19` +- AttributeTransformsResource.list_public: `nexla_sdk/resources/attribute_transforms.py:57` +- AttributeTransformsResource.update: `nexla_sdk/resources/attribute_transforms.py:47` ### nexla_sdk.resources.base_resource -- BaseResource: `nexla_sdk/resources/base_resource.py:12` -- BaseResource.activate: `nexla_sdk/resources/base_resource.py:249` -- BaseResource.add_accessors: `nexla_sdk/resources/base_resource.py:324` -- BaseResource.copy: `nexla_sdk/resources/base_resource.py:277` -- BaseResource.create: `nexla_sdk/resources/base_resource.py:199` -- BaseResource.delete: `nexla_sdk/resources/base_resource.py:236` -- BaseResource.delete_accessors: `nexla_sdk/resources/base_resource.py:364` -- BaseResource.get: `nexla_sdk/resources/base_resource.py:175` -- BaseResource.get_accessors: `nexla_sdk/resources/base_resource.py:306` -- BaseResource.get_audit_log: `nexla_sdk/resources/base_resource.py:293` -- BaseResource.list: `nexla_sdk/resources/base_resource.py:106` -- BaseResource.paginate: `nexla_sdk/resources/base_resource.py:153` -- BaseResource.pause: `nexla_sdk/resources/base_resource.py:263` -- BaseResource.replace_accessors: `nexla_sdk/resources/base_resource.py:344` -- BaseResource.update: `nexla_sdk/resources/base_resource.py:220` +- BaseResource: `nexla_sdk/resources/base_resource.py:15` +- BaseResource.activate: `nexla_sdk/resources/base_resource.py:289` +- BaseResource.add_accessors: `nexla_sdk/resources/base_resource.py:398` +- BaseResource.copy: `nexla_sdk/resources/base_resource.py:321` +- BaseResource.create: `nexla_sdk/resources/base_resource.py:229` +- BaseResource.delete: `nexla_sdk/resources/base_resource.py:274` +- BaseResource.delete_accessors: `nexla_sdk/resources/base_resource.py:450` +- BaseResource.get: `nexla_sdk/resources/base_resource.py:199` +- BaseResource.get_accessors: `nexla_sdk/resources/base_resource.py:380` +- BaseResource.get_audit_log: `nexla_sdk/resources/base_resource.py:339` +- BaseResource.list: `nexla_sdk/resources/base_resource.py:130` +- BaseResource.paginate: `nexla_sdk/resources/base_resource.py:181` +- BaseResource.pause: `nexla_sdk/resources/base_resource.py:305` +- BaseResource.replace_accessors: `nexla_sdk/resources/base_resource.py:424` +- BaseResource.update: `nexla_sdk/resources/base_resource.py:252` ### nexla_sdk.resources.code_containers -- CodeContainersResource: `nexla_sdk/resources/code_containers.py:7` -- CodeContainersResource.copy: `nexla_sdk/resources/code_containers.py:61` -- CodeContainersResource.create: `nexla_sdk/resources/code_containers.py:41` -- CodeContainersResource.delete: `nexla_sdk/resources/code_containers.py:57` -- CodeContainersResource.get: `nexla_sdk/resources/code_containers.py:33` -- CodeContainersResource.list: `nexla_sdk/resources/code_containers.py:15` -- CodeContainersResource.list_public: `nexla_sdk/resources/code_containers.py:65` -- CodeContainersResource.update: `nexla_sdk/resources/code_containers.py:49` +- CodeContainersResource: `nexla_sdk/resources/code_containers.py:11` +- CodeContainersResource.copy: `nexla_sdk/resources/code_containers.py:67` +- CodeContainersResource.create: `nexla_sdk/resources/code_containers.py:45` +- CodeContainersResource.delete: `nexla_sdk/resources/code_containers.py:63` +- CodeContainersResource.get: `nexla_sdk/resources/code_containers.py:37` +- CodeContainersResource.list: `nexla_sdk/resources/code_containers.py:19` +- CodeContainersResource.list_public: `nexla_sdk/resources/code_containers.py:71` +- CodeContainersResource.update: `nexla_sdk/resources/code_containers.py:53` ### nexla_sdk.resources.credentials -- CredentialsResource: `nexla_sdk/resources/credentials.py:10` -- CredentialsResource.create: `nexla_sdk/resources/credentials.py:66` -- CredentialsResource.delete: `nexla_sdk/resources/credentials.py:96` -- CredentialsResource.get: `nexla_sdk/resources/credentials.py:50` -- CredentialsResource.list: `nexla_sdk/resources/credentials.py:18` -- CredentialsResource.probe: `nexla_sdk/resources/credentials.py:108` -- CredentialsResource.probe_sample: `nexla_sdk/resources/credentials.py:158` -- CredentialsResource.probe_tree: `nexla_sdk/resources/credentials.py:134` -- CredentialsResource.update: `nexla_sdk/resources/credentials.py:83` +- CredentialsResource: `nexla_sdk/resources/credentials.py:19` +- CredentialsResource.create: `nexla_sdk/resources/credentials.py:75` +- CredentialsResource.delete: `nexla_sdk/resources/credentials.py:105` +- CredentialsResource.get: `nexla_sdk/resources/credentials.py:59` +- CredentialsResource.list: `nexla_sdk/resources/credentials.py:27` +- CredentialsResource.probe: `nexla_sdk/resources/credentials.py:117` +- CredentialsResource.probe_sample: `nexla_sdk/resources/credentials.py:183` +- CredentialsResource.probe_tree: `nexla_sdk/resources/credentials.py:155` +- CredentialsResource.update: `nexla_sdk/resources/credentials.py:92` ### nexla_sdk.resources.data_schemas -- DataSchemasResource: `nexla_sdk/resources/data_schemas.py:6` -- DataSchemasResource.get_audit_log: `nexla_sdk/resources/data_schemas.py:14` +- DataSchemasResource: `nexla_sdk/resources/data_schemas.py:7` +- DataSchemasResource.get_audit_log: `nexla_sdk/resources/data_schemas.py:15` ### nexla_sdk.resources.destinations -- DestinationsResource: `nexla_sdk/resources/destinations.py:7` -- DestinationsResource.activate: `nexla_sdk/resources/destinations.py:89` -- DestinationsResource.copy: `nexla_sdk/resources/destinations.py:113` -- DestinationsResource.create: `nexla_sdk/resources/destinations.py:49` -- DestinationsResource.delete: `nexla_sdk/resources/destinations.py:77` -- DestinationsResource.get: `nexla_sdk/resources/destinations.py:33` -- DestinationsResource.list: `nexla_sdk/resources/destinations.py:15` -- DestinationsResource.pause: `nexla_sdk/resources/destinations.py:101` -- DestinationsResource.update: `nexla_sdk/resources/destinations.py:64` +- DestinationsResource: `nexla_sdk/resources/destinations.py:12` +- DestinationsResource.activate: `nexla_sdk/resources/destinations.py:94` +- DestinationsResource.copy: `nexla_sdk/resources/destinations.py:118` +- DestinationsResource.create: `nexla_sdk/resources/destinations.py:54` +- DestinationsResource.delete: `nexla_sdk/resources/destinations.py:82` +- DestinationsResource.get: `nexla_sdk/resources/destinations.py:38` +- DestinationsResource.list: `nexla_sdk/resources/destinations.py:20` +- DestinationsResource.pause: `nexla_sdk/resources/destinations.py:106` +- DestinationsResource.update: `nexla_sdk/resources/destinations.py:69` ### nexla_sdk.resources.doc_containers -- DocContainersResource: `nexla_sdk/resources/doc_containers.py:6` -- DocContainersResource.get_audit_log: `nexla_sdk/resources/doc_containers.py:14` +- DocContainersResource: `nexla_sdk/resources/doc_containers.py:7` +- DocContainersResource.get_audit_log: `nexla_sdk/resources/doc_containers.py:15` ### nexla_sdk.resources.flows -- FlowsResource: `nexla_sdk/resources/flows.py:7` -- FlowsResource.activate: `nexla_sdk/resources/flows.py:83` -- FlowsResource.activate_by_resource: `nexla_sdk/resources/flows.py:164` -- FlowsResource.copy: `nexla_sdk/resources/flows.py:125` -- FlowsResource.delete: `nexla_sdk/resources/flows.py:138` -- FlowsResource.delete_by_resource: `nexla_sdk/resources/flows.py:150` -- FlowsResource.docs_recommendation: `nexla_sdk/resources/flows.py:216` -- FlowsResource.get: `nexla_sdk/resources/flows.py:46` -- FlowsResource.get_by_resource: `nexla_sdk/resources/flows.py:62` -- FlowsResource.get_logs: `nexla_sdk/resources/flows.py:221` -- FlowsResource.get_metrics: `nexla_sdk/resources/flows.py:243` -- FlowsResource.list: `nexla_sdk/resources/flows.py:15` -- FlowsResource.pause: `nexla_sdk/resources/flows.py:104` -- FlowsResource.pause_by_resource: `nexla_sdk/resources/flows.py:190` +- FlowsResource: `nexla_sdk/resources/flows.py:21` +- FlowsResource.activate: `nexla_sdk/resources/flows.py:117` +- FlowsResource.activate_by_resource: `nexla_sdk/resources/flows.py:314` +- FlowsResource.copy: `nexla_sdk/resources/flows.py:171` +- FlowsResource.copy_and_replace_credentials: `nexla_sdk/resources/flows.py:186` +- FlowsResource.delete: `nexla_sdk/resources/flows.py:282` +- FlowsResource.delete_by_resource: `nexla_sdk/resources/flows.py:294` +- FlowsResource.docs_recommendation: `nexla_sdk/resources/flows.py:378` +- FlowsResource.get: `nexla_sdk/resources/flows.py:67` +- FlowsResource.get_active_flows_metrics: `nexla_sdk/resources/flows.py:475` +- FlowsResource.get_by_resource: `nexla_sdk/resources/flows.py:90` +- FlowsResource.get_flow_logs: `nexla_sdk/resources/flows.py:397` +- FlowsResource.get_logs: `nexla_sdk/resources/flows.py:529` +- FlowsResource.get_metrics: `nexla_sdk/resources/flows.py:581` +- FlowsResource.get_run_status: `nexla_sdk/resources/flows.py:499` +- FlowsResource.list: `nexla_sdk/resources/flows.py:29` +- FlowsResource.pause: `nexla_sdk/resources/flows.py:140` +- FlowsResource.pause_by_resource: `nexla_sdk/resources/flows.py:346` +- FlowsResource.search_flow_logs: `nexla_sdk/resources/flows.py:438` ### nexla_sdk.resources.genai -- GenAIResource: `nexla_sdk/resources/genai.py:9` -- GenAIResource.create_config: `nexla_sdk/resources/genai.py:22` -- GenAIResource.create_org_setting: `nexla_sdk/resources/genai.py:49` -- GenAIResource.delete_config: `nexla_sdk/resources/genai.py:36` -- GenAIResource.delete_org_setting: `nexla_sdk/resources/genai.py:58` -- GenAIResource.get_config: `nexla_sdk/resources/genai.py:27` -- GenAIResource.get_org_setting: `nexla_sdk/resources/genai.py:54` -- GenAIResource.list_configs: `nexla_sdk/resources/genai.py:18` -- GenAIResource.list_org_settings: `nexla_sdk/resources/genai.py:40` -- GenAIResource.show_active_config: `nexla_sdk/resources/genai.py:61` -- GenAIResource.update_config: `nexla_sdk/resources/genai.py:31` +- GenAIResource: `nexla_sdk/resources/genai.py:16` +- GenAIResource.create_config: `nexla_sdk/resources/genai.py:29` +- GenAIResource.create_org_setting: `nexla_sdk/resources/genai.py:66` +- GenAIResource.delete_config: `nexla_sdk/resources/genai.py:49` +- GenAIResource.delete_org_setting: `nexla_sdk/resources/genai.py:77` +- GenAIResource.get_config: `nexla_sdk/resources/genai.py:34` +- GenAIResource.get_org_setting: `nexla_sdk/resources/genai.py:71` +- GenAIResource.list_configs: `nexla_sdk/resources/genai.py:25` +- GenAIResource.list_org_settings: `nexla_sdk/resources/genai.py:55` +- GenAIResource.show_active_config: `nexla_sdk/resources/genai.py:82` +- GenAIResource.update_config: `nexla_sdk/resources/genai.py:40` ### nexla_sdk.resources.lookups -- LookupsResource: `nexla_sdk/resources/lookups.py:8` -- LookupsResource.create: `nexla_sdk/resources/lookups.py:50` -- LookupsResource.delete: `nexla_sdk/resources/lookups.py:78` -- LookupsResource.delete_entries: `nexla_sdk/resources/lookups.py:131` -- LookupsResource.get: `nexla_sdk/resources/lookups.py:34` -- LookupsResource.get_entries: `nexla_sdk/resources/lookups.py:110` -- LookupsResource.list: `nexla_sdk/resources/lookups.py:16` -- LookupsResource.update: `nexla_sdk/resources/lookups.py:65` -- LookupsResource.upsert_entries: `nexla_sdk/resources/lookups.py:90` +- LookupsResource: `nexla_sdk/resources/lookups.py:14` +- LookupsResource.create: `nexla_sdk/resources/lookups.py:56` +- LookupsResource.delete: `nexla_sdk/resources/lookups.py:84` +- LookupsResource.delete_entries: `nexla_sdk/resources/lookups.py:137` +- LookupsResource.get: `nexla_sdk/resources/lookups.py:40` +- LookupsResource.get_entries: `nexla_sdk/resources/lookups.py:116` +- LookupsResource.list: `nexla_sdk/resources/lookups.py:22` +- LookupsResource.update: `nexla_sdk/resources/lookups.py:71` +- LookupsResource.upsert_entries: `nexla_sdk/resources/lookups.py:96` ### nexla_sdk.resources.marketplace -- MarketplaceResource: `nexla_sdk/resources/marketplace.py:11` -- MarketplaceResource.add_domain_custodians: `nexla_sdk/resources/marketplace.py:70` -- MarketplaceResource.create_domain: `nexla_sdk/resources/marketplace.py:42` -- MarketplaceResource.create_domain_item: `nexla_sdk/resources/marketplace.py:55` -- MarketplaceResource.create_domains: `nexla_sdk/resources/marketplace.py:24` -- MarketplaceResource.delete_domain: `nexla_sdk/resources/marketplace.py:47` -- MarketplaceResource.get_domain: `nexla_sdk/resources/marketplace.py:33` -- MarketplaceResource.get_domains_for_org: `nexla_sdk/resources/marketplace.py:29` -- MarketplaceResource.list_domain_custodians: `nexla_sdk/resources/marketplace.py:61` -- MarketplaceResource.list_domain_items: `nexla_sdk/resources/marketplace.py:51` -- MarketplaceResource.list_domains: `nexla_sdk/resources/marketplace.py:20` -- MarketplaceResource.remove_domain_custodians: `nexla_sdk/resources/marketplace.py:75` -- MarketplaceResource.update_domain: `nexla_sdk/resources/marketplace.py:37` -- MarketplaceResource.update_domain_custodians: `nexla_sdk/resources/marketplace.py:65` +- MarketplaceResource: `nexla_sdk/resources/marketplace.py:16` +- MarketplaceResource.add_domain_custodians: `nexla_sdk/resources/marketplace.py:91` +- MarketplaceResource.create_domain: `nexla_sdk/resources/marketplace.py:53` +- MarketplaceResource.create_domain_item: `nexla_sdk/resources/marketplace.py:66` +- MarketplaceResource.create_domains: `nexla_sdk/resources/marketplace.py:29` +- MarketplaceResource.delete_domain: `nexla_sdk/resources/marketplace.py:58` +- MarketplaceResource.get_domain: `nexla_sdk/resources/marketplace.py:40` +- MarketplaceResource.get_domains_for_org: `nexla_sdk/resources/marketplace.py:34` +- MarketplaceResource.list_domain_custodians: `nexla_sdk/resources/marketplace.py:76` +- MarketplaceResource.list_domain_items: `nexla_sdk/resources/marketplace.py:62` +- MarketplaceResource.list_domains: `nexla_sdk/resources/marketplace.py:25` +- MarketplaceResource.remove_domain_custodians: `nexla_sdk/resources/marketplace.py:100` +- MarketplaceResource.update_domain: `nexla_sdk/resources/marketplace.py:44` +- MarketplaceResource.update_domain_custodians: `nexla_sdk/resources/marketplace.py:82` ### nexla_sdk.resources.metrics -- MetricsResource: `nexla_sdk/resources/metrics.py:10` -- MetricsResource.get_flow_logs: `nexla_sdk/resources/metrics.py:120` -- MetricsResource.get_flow_metrics: `nexla_sdk/resources/metrics.py:97` -- MetricsResource.get_rate_limits: `nexla_sdk/resources/metrics.py:86` -- MetricsResource.get_resource_daily_metrics: `nexla_sdk/resources/metrics.py:23` -- MetricsResource.get_resource_metrics_by_run: `nexla_sdk/resources/metrics.py:51` +- MetricsResource: `nexla_sdk/resources/metrics.py:26` +- MetricsResource.get_flow_logs: `nexla_sdk/resources/metrics.py:216` +- MetricsResource.get_flow_metrics: `nexla_sdk/resources/metrics.py:162` +- MetricsResource.get_flow_metrics_summary: `nexla_sdk/resources/metrics.py:148` +- MetricsResource.get_rate_limits: `nexla_sdk/resources/metrics.py:111` +- MetricsResource.get_resource_daily_metrics: `nexla_sdk/resources/metrics.py:39` +- MetricsResource.get_resource_flow_metrics: `nexla_sdk/resources/metrics.py:121` +- MetricsResource.get_resource_metrics_by_run: `nexla_sdk/resources/metrics.py:70` ### nexla_sdk.resources.nexsets -- NexsetsResource: `nexla_sdk/resources/nexsets.py:7` -- NexsetsResource.activate: `nexla_sdk/resources/nexsets.py:89` -- NexsetsResource.copy: `nexla_sdk/resources/nexsets.py:144` -- NexsetsResource.create: `nexla_sdk/resources/nexsets.py:49` -- NexsetsResource.delete: `nexla_sdk/resources/nexsets.py:77` -- NexsetsResource.docs_recommendation: `nexla_sdk/resources/nexsets.py:158` -- NexsetsResource.get: `nexla_sdk/resources/nexsets.py:33` -- NexsetsResource.get_samples: `nexla_sdk/resources/nexsets.py:113` -- NexsetsResource.list: `nexla_sdk/resources/nexsets.py:15` -- NexsetsResource.pause: `nexla_sdk/resources/nexsets.py:101` -- NexsetsResource.update: `nexla_sdk/resources/nexsets.py:64` +- NexsetsResource: `nexla_sdk/resources/nexsets.py:12` +- NexsetsResource.activate: `nexla_sdk/resources/nexsets.py:94` +- NexsetsResource.copy: `nexla_sdk/resources/nexsets.py:147` +- NexsetsResource.create: `nexla_sdk/resources/nexsets.py:54` +- NexsetsResource.delete: `nexla_sdk/resources/nexsets.py:82` +- NexsetsResource.docs_recommendation: `nexla_sdk/resources/nexsets.py:161` +- NexsetsResource.get: `nexla_sdk/resources/nexsets.py:38` +- NexsetsResource.get_samples: `nexla_sdk/resources/nexsets.py:118` +- NexsetsResource.list: `nexla_sdk/resources/nexsets.py:20` +- NexsetsResource.pause: `nexla_sdk/resources/nexsets.py:106` +- NexsetsResource.update: `nexla_sdk/resources/nexsets.py:69` ### nexla_sdk.resources.notifications -- NotificationsResource: `nexla_sdk/resources/notifications.py:13` -- NotificationsResource.create_channel_setting: `nexla_sdk/resources/notifications.py:190` -- NotificationsResource.create_setting: `nexla_sdk/resources/notifications.py:276` -- NotificationsResource.delete: `nexla_sdk/resources/notifications.py:34` -- NotificationsResource.delete_all: `nexla_sdk/resources/notifications.py:82` -- NotificationsResource.delete_channel_setting: `nexla_sdk/resources/notifications.py:235` -- NotificationsResource.delete_setting: `nexla_sdk/resources/notifications.py:321` -- NotificationsResource.get: `nexla_sdk/resources/notifications.py:21` -- NotificationsResource.get_channel_setting: `nexla_sdk/resources/notifications.py:204` -- NotificationsResource.get_count: `nexla_sdk/resources/notifications.py:92` -- NotificationsResource.get_resource_settings: `nexla_sdk/resources/notifications.py:352` -- NotificationsResource.get_setting: `nexla_sdk/resources/notifications.py:290` -- NotificationsResource.get_settings_by_type: `nexla_sdk/resources/notifications.py:334` -- NotificationsResource.get_type: `nexla_sdk/resources/notifications.py:159` -- NotificationsResource.get_types: `nexla_sdk/resources/notifications.py:144` -- NotificationsResource.list: `nexla_sdk/resources/notifications.py:46` -- NotificationsResource.list_channel_settings: `nexla_sdk/resources/notifications.py:179` -- NotificationsResource.list_settings: `nexla_sdk/resources/notifications.py:249` -- NotificationsResource.mark_read: `nexla_sdk/resources/notifications.py:107` -- NotificationsResource.mark_unread: `nexla_sdk/resources/notifications.py:125` -- NotificationsResource.update_channel_setting: `nexla_sdk/resources/notifications.py:218` -- NotificationsResource.update_setting: `nexla_sdk/resources/notifications.py:304` +- NotificationsResource: `nexla_sdk/resources/notifications.py:19` +- NotificationsResource.create_channel_setting: `nexla_sdk/resources/notifications.py:195` +- NotificationsResource.create_setting: `nexla_sdk/resources/notifications.py:285` +- NotificationsResource.delete: `nexla_sdk/resources/notifications.py:40` +- NotificationsResource.delete_all: `nexla_sdk/resources/notifications.py:90` +- NotificationsResource.delete_channel_setting: `nexla_sdk/resources/notifications.py:242` +- NotificationsResource.delete_setting: `nexla_sdk/resources/notifications.py:330` +- NotificationsResource.get: `nexla_sdk/resources/notifications.py:27` +- NotificationsResource.get_channel_setting: `nexla_sdk/resources/notifications.py:211` +- NotificationsResource.get_count: `nexla_sdk/resources/notifications.py:100` +- NotificationsResource.get_resource_settings: `nexla_sdk/resources/notifications.py:361` +- NotificationsResource.get_setting: `nexla_sdk/resources/notifications.py:299` +- NotificationsResource.get_settings_by_type: `nexla_sdk/resources/notifications.py:343` +- NotificationsResource.get_type: `nexla_sdk/resources/notifications.py:167` +- NotificationsResource.get_types: `nexla_sdk/resources/notifications.py:152` +- NotificationsResource.list: `nexla_sdk/resources/notifications.py:52` +- NotificationsResource.list_channel_settings: `nexla_sdk/resources/notifications.py:184` +- NotificationsResource.list_settings: `nexla_sdk/resources/notifications.py:256` +- NotificationsResource.mark_read: `nexla_sdk/resources/notifications.py:115` +- NotificationsResource.mark_unread: `nexla_sdk/resources/notifications.py:133` +- NotificationsResource.update_channel_setting: `nexla_sdk/resources/notifications.py:225` +- NotificationsResource.update_setting: `nexla_sdk/resources/notifications.py:313` ### nexla_sdk.resources.org_auth_configs -- OrgAuthConfigsResource: `nexla_sdk/resources/org_auth_configs.py:7` -- OrgAuthConfigsResource.create: `nexla_sdk/resources/org_auth_configs.py:30` -- OrgAuthConfigsResource.delete: `nexla_sdk/resources/org_auth_configs.py:42` -- OrgAuthConfigsResource.get: `nexla_sdk/resources/org_auth_configs.py:25` -- OrgAuthConfigsResource.list: `nexla_sdk/resources/org_auth_configs.py:15` -- OrgAuthConfigsResource.list_all: `nexla_sdk/resources/org_auth_configs.py:20` -- OrgAuthConfigsResource.update: `nexla_sdk/resources/org_auth_configs.py:36` +- OrgAuthConfigsResource: `nexla_sdk/resources/org_auth_configs.py:8` +- OrgAuthConfigsResource.create: `nexla_sdk/resources/org_auth_configs.py:31` +- OrgAuthConfigsResource.delete: `nexla_sdk/resources/org_auth_configs.py:45` +- OrgAuthConfigsResource.get: `nexla_sdk/resources/org_auth_configs.py:26` +- OrgAuthConfigsResource.list: `nexla_sdk/resources/org_auth_configs.py:16` +- OrgAuthConfigsResource.list_all: `nexla_sdk/resources/org_auth_configs.py:21` +- OrgAuthConfigsResource.update: `nexla_sdk/resources/org_auth_configs.py:37` ### nexla_sdk.resources.organizations -- OrganizationsResource: `nexla_sdk/resources/organizations.py:15` -- OrganizationsResource.activate_members: `nexla_sdk/resources/organizations.py:164` -- OrganizationsResource.add_custodians: `nexla_sdk/resources/organizations.py:291` -- OrganizationsResource.create: `nexla_sdk/resources/organizations.py:54` -- OrganizationsResource.deactivate_members: `nexla_sdk/resources/organizations.py:149` -- OrganizationsResource.delete: `nexla_sdk/resources/organizations.py:79` -- OrganizationsResource.delete_members: `nexla_sdk/resources/organizations.py:135` -- OrganizationsResource.get: `nexla_sdk/resources/organizations.py:41` -- OrganizationsResource.get_account_summary: `nexla_sdk/resources/organizations.py:179` -- OrganizationsResource.get_audit_log: `nexla_sdk/resources/organizations.py:212` -- OrganizationsResource.get_auth_settings: `nexla_sdk/resources/organizations.py:243` -- OrganizationsResource.get_current_account_summary: `nexla_sdk/resources/organizations.py:193` -- OrganizationsResource.get_custodians: `nexla_sdk/resources/organizations.py:276` -- OrganizationsResource.get_members: `nexla_sdk/resources/organizations.py:91` -- OrganizationsResource.get_org_flow_account_metrics: `nexla_sdk/resources/organizations.py:204` -- OrganizationsResource.get_resource_audit_log: `nexla_sdk/resources/organizations.py:227` -- OrganizationsResource.list: `nexla_sdk/resources/organizations.py:23` -- OrganizationsResource.remove_custodians: `nexla_sdk/resources/organizations.py:299` -- OrganizationsResource.replace_members: `nexla_sdk/resources/organizations.py:120` -- OrganizationsResource.update: `nexla_sdk/resources/organizations.py:66` -- OrganizationsResource.update_auth_setting: `nexla_sdk/resources/organizations.py:256` -- OrganizationsResource.update_custodians: `nexla_sdk/resources/organizations.py:283` -- OrganizationsResource.update_members: `nexla_sdk/resources/organizations.py:105` +- OrganizationsResource: `nexla_sdk/resources/organizations.py:22` +- OrganizationsResource.activate_members: `nexla_sdk/resources/organizations.py:173` +- OrganizationsResource.add_custodians: `nexla_sdk/resources/organizations.py:365` +- OrganizationsResource.create: `nexla_sdk/resources/organizations.py:61` +- OrganizationsResource.deactivate_members: `nexla_sdk/resources/organizations.py:156` +- OrganizationsResource.delete: `nexla_sdk/resources/organizations.py:86` +- OrganizationsResource.delete_members: `nexla_sdk/resources/organizations.py:142` +- OrganizationsResource.get: `nexla_sdk/resources/organizations.py:48` +- OrganizationsResource.get_account_summary: `nexla_sdk/resources/organizations.py:190` +- OrganizationsResource.get_audit_log: `nexla_sdk/resources/organizations.py:227` +- OrganizationsResource.get_auth_settings: `nexla_sdk/resources/organizations.py:316` +- OrganizationsResource.get_current_account_summary: `nexla_sdk/resources/organizations.py:204` +- OrganizationsResource.get_custodians: `nexla_sdk/resources/organizations.py:348` +- OrganizationsResource.get_flow_status_metrics: `nexla_sdk/resources/organizations.py:269` +- OrganizationsResource.get_members: `nexla_sdk/resources/organizations.py:98` +- OrganizationsResource.get_org_flow_account_metrics: `nexla_sdk/resources/organizations.py:215` +- OrganizationsResource.get_resource_audit_log: `nexla_sdk/resources/organizations.py:294` +- OrganizationsResource.list: `nexla_sdk/resources/organizations.py:30` +- OrganizationsResource.remove_custodians: `nexla_sdk/resources/organizations.py:375` +- OrganizationsResource.replace_members: `nexla_sdk/resources/organizations.py:127` +- OrganizationsResource.update: `nexla_sdk/resources/organizations.py:73` +- OrganizationsResource.update_auth_setting: `nexla_sdk/resources/organizations.py:329` +- OrganizationsResource.update_custodians: `nexla_sdk/resources/organizations.py:355` +- OrganizationsResource.update_members: `nexla_sdk/resources/organizations.py:112` ### nexla_sdk.resources.projects -- ProjectsResource: `nexla_sdk/resources/projects.py:8` -- ProjectsResource.add_data_flows: `nexla_sdk/resources/projects.py:161` -- ProjectsResource.add_flows: `nexla_sdk/resources/projects.py:108` -- ProjectsResource.create: `nexla_sdk/resources/projects.py:54` -- ProjectsResource.delete: `nexla_sdk/resources/projects.py:82` -- ProjectsResource.get: `nexla_sdk/resources/projects.py:38` -- ProjectsResource.get_flows: `nexla_sdk/resources/projects.py:94` -- ProjectsResource.list: `nexla_sdk/resources/projects.py:16` -- ProjectsResource.remove_data_flows: `nexla_sdk/resources/projects.py:177` -- ProjectsResource.remove_flows: `nexla_sdk/resources/projects.py:142` -- ProjectsResource.replace_data_flows: `nexla_sdk/resources/projects.py:169` -- ProjectsResource.replace_flows: `nexla_sdk/resources/projects.py:125` -- ProjectsResource.search_flows: `nexla_sdk/resources/projects.py:187` -- ProjectsResource.update: `nexla_sdk/resources/projects.py:69` +- ProjectsResource: `nexla_sdk/resources/projects.py:13` +- ProjectsResource.add_data_flows: `nexla_sdk/resources/projects.py:170` +- ProjectsResource.add_flows: `nexla_sdk/resources/projects.py:113` +- ProjectsResource.create: `nexla_sdk/resources/projects.py:59` +- ProjectsResource.delete: `nexla_sdk/resources/projects.py:87` +- ProjectsResource.get: `nexla_sdk/resources/projects.py:43` +- ProjectsResource.get_flows: `nexla_sdk/resources/projects.py:99` +- ProjectsResource.list: `nexla_sdk/resources/projects.py:21` +- ProjectsResource.remove_data_flows: `nexla_sdk/resources/projects.py:190` +- ProjectsResource.remove_flows: `nexla_sdk/resources/projects.py:151` +- ProjectsResource.replace_data_flows: `nexla_sdk/resources/projects.py:180` +- ProjectsResource.replace_flows: `nexla_sdk/resources/projects.py:132` +- ProjectsResource.search_flows: `nexla_sdk/resources/projects.py:200` +- ProjectsResource.update: `nexla_sdk/resources/projects.py:74` ### nexla_sdk.resources.runtimes -- RuntimesResource: `nexla_sdk/resources/runtimes.py:7` -- RuntimesResource.activate: `nexla_sdk/resources/runtimes.py:44` -- RuntimesResource.create: `nexla_sdk/resources/runtimes.py:20` -- RuntimesResource.delete: `nexla_sdk/resources/runtimes.py:39` -- RuntimesResource.get: `nexla_sdk/resources/runtimes.py:26` -- RuntimesResource.list: `nexla_sdk/resources/runtimes.py:15` -- RuntimesResource.pause: `nexla_sdk/resources/runtimes.py:50` -- RuntimesResource.update: `nexla_sdk/resources/runtimes.py:32` +- RuntimesResource: `nexla_sdk/resources/runtimes.py:8` +- RuntimesResource.activate: `nexla_sdk/resources/runtimes.py:45` +- RuntimesResource.create: `nexla_sdk/resources/runtimes.py:21` +- RuntimesResource.delete: `nexla_sdk/resources/runtimes.py:40` +- RuntimesResource.get: `nexla_sdk/resources/runtimes.py:27` +- RuntimesResource.list: `nexla_sdk/resources/runtimes.py:16` +- RuntimesResource.pause: `nexla_sdk/resources/runtimes.py:51` +- RuntimesResource.update: `nexla_sdk/resources/runtimes.py:33` ### nexla_sdk.resources.self_signup -- SelfSignupResource: `nexla_sdk/resources/self_signup.py:6` -- SelfSignupResource.add_blocked_domain: `nexla_sdk/resources/self_signup.py:34` -- SelfSignupResource.approve_request: `nexla_sdk/resources/self_signup.py:26` -- SelfSignupResource.delete_blocked_domain: `nexla_sdk/resources/self_signup.py:42` -- SelfSignupResource.list_blocked_domains: `nexla_sdk/resources/self_signup.py:30` -- SelfSignupResource.list_requests: `nexla_sdk/resources/self_signup.py:22` -- SelfSignupResource.signup: `nexla_sdk/resources/self_signup.py:15` -- SelfSignupResource.update_blocked_domain: `nexla_sdk/resources/self_signup.py:38` -- SelfSignupResource.verify_email: `nexla_sdk/resources/self_signup.py:18` +- SelfSignupResource: `nexla_sdk/resources/self_signup.py:7` +- SelfSignupResource.add_blocked_domain: `nexla_sdk/resources/self_signup.py:39` +- SelfSignupResource.approve_request: `nexla_sdk/resources/self_signup.py:29` +- SelfSignupResource.delete_blocked_domain: `nexla_sdk/resources/self_signup.py:51` +- SelfSignupResource.list_blocked_domains: `nexla_sdk/resources/self_signup.py:35` +- SelfSignupResource.list_requests: `nexla_sdk/resources/self_signup.py:25` +- SelfSignupResource.signup: `nexla_sdk/resources/self_signup.py:16` +- SelfSignupResource.update_blocked_domain: `nexla_sdk/resources/self_signup.py:45` +- SelfSignupResource.verify_email: `nexla_sdk/resources/self_signup.py:19` ### nexla_sdk.resources.sources -- SourcesResource: `nexla_sdk/resources/sources.py:7` -- SourcesResource.activate: `nexla_sdk/resources/sources.py:93` -- SourcesResource.copy: `nexla_sdk/resources/sources.py:117` -- SourcesResource.create: `nexla_sdk/resources/sources.py:53` -- SourcesResource.delete: `nexla_sdk/resources/sources.py:81` -- SourcesResource.get: `nexla_sdk/resources/sources.py:37` -- SourcesResource.list: `nexla_sdk/resources/sources.py:15` -- SourcesResource.pause: `nexla_sdk/resources/sources.py:105` -- SourcesResource.update: `nexla_sdk/resources/sources.py:68` +- SourcesResource: `nexla_sdk/resources/sources.py:12` +- SourcesResource.activate: `nexla_sdk/resources/sources.py:98` +- SourcesResource.copy: `nexla_sdk/resources/sources.py:122` +- SourcesResource.create: `nexla_sdk/resources/sources.py:58` +- SourcesResource.delete: `nexla_sdk/resources/sources.py:86` +- SourcesResource.get: `nexla_sdk/resources/sources.py:42` +- SourcesResource.list: `nexla_sdk/resources/sources.py:20` +- SourcesResource.pause: `nexla_sdk/resources/sources.py:110` +- SourcesResource.update: `nexla_sdk/resources/sources.py:73` ### nexla_sdk.resources.teams -- TeamsResource: `nexla_sdk/resources/teams.py:7` -- TeamsResource.add_members: `nexla_sdk/resources/teams.py:103` -- TeamsResource.create: `nexla_sdk/resources/teams.py:49` -- TeamsResource.delete: `nexla_sdk/resources/teams.py:77` -- TeamsResource.get: `nexla_sdk/resources/teams.py:33` -- TeamsResource.get_members: `nexla_sdk/resources/teams.py:89` -- TeamsResource.list: `nexla_sdk/resources/teams.py:15` -- TeamsResource.remove_members: `nexla_sdk/resources/teams.py:133` -- TeamsResource.replace_members: `nexla_sdk/resources/teams.py:118` -- TeamsResource.update: `nexla_sdk/resources/teams.py:64` +- TeamsResource: `nexla_sdk/resources/teams.py:8` +- TeamsResource.add_members: `nexla_sdk/resources/teams.py:104` +- TeamsResource.create: `nexla_sdk/resources/teams.py:50` +- TeamsResource.delete: `nexla_sdk/resources/teams.py:78` +- TeamsResource.get: `nexla_sdk/resources/teams.py:34` +- TeamsResource.get_members: `nexla_sdk/resources/teams.py:90` +- TeamsResource.list: `nexla_sdk/resources/teams.py:16` +- TeamsResource.remove_members: `nexla_sdk/resources/teams.py:136` +- TeamsResource.replace_members: `nexla_sdk/resources/teams.py:119` +- TeamsResource.update: `nexla_sdk/resources/teams.py:65` ### nexla_sdk.resources.transforms -- TransformsResource: `nexla_sdk/resources/transforms.py:7` -- TransformsResource.copy: `nexla_sdk/resources/transforms.py:49` -- TransformsResource.create: `nexla_sdk/resources/transforms.py:37` -- TransformsResource.delete: `nexla_sdk/resources/transforms.py:45` -- TransformsResource.get: `nexla_sdk/resources/transforms.py:33` -- TransformsResource.list: `nexla_sdk/resources/transforms.py:15` -- TransformsResource.list_public: `nexla_sdk/resources/transforms.py:53` -- TransformsResource.update: `nexla_sdk/resources/transforms.py:41` +- TransformsResource: `nexla_sdk/resources/transforms.py:8` +- TransformsResource.copy: `nexla_sdk/resources/transforms.py:50` +- TransformsResource.create: `nexla_sdk/resources/transforms.py:38` +- TransformsResource.delete: `nexla_sdk/resources/transforms.py:46` +- TransformsResource.get: `nexla_sdk/resources/transforms.py:34` +- TransformsResource.list: `nexla_sdk/resources/transforms.py:16` +- TransformsResource.list_public: `nexla_sdk/resources/transforms.py:54` +- TransformsResource.update: `nexla_sdk/resources/transforms.py:42` ### nexla_sdk.resources.users -- UsersResource: `nexla_sdk/resources/users.py:8` -- UsersResource.create: `nexla_sdk/resources/users.py:62` -- UsersResource.create_quarantine_settings: `nexla_sdk/resources/users.py:131` -- UsersResource.delete: `nexla_sdk/resources/users.py:90` -- UsersResource.delete_quarantine_settings: `nexla_sdk/resources/users.py:169` -- UsersResource.get: `nexla_sdk/resources/users.py:40` -- UsersResource.get_account_metrics: `nexla_sdk/resources/users.py:224` -- UsersResource.get_audit_log: `nexla_sdk/resources/users.py:182` -- UsersResource.get_current: `nexla_sdk/resources/users.py:113` -- UsersResource.get_daily_metrics: `nexla_sdk/resources/users.py:270` -- UsersResource.get_dashboard_metrics: `nexla_sdk/resources/users.py:250` -- UsersResource.get_quarantine_settings: `nexla_sdk/resources/users.py:118` -- UsersResource.get_settings: `nexla_sdk/resources/users.py:102` -- UsersResource.get_transferable_resources: `nexla_sdk/resources/users.py:190` -- UsersResource.list: `nexla_sdk/resources/users.py:16` -- UsersResource.transfer_resources: `nexla_sdk/resources/users.py:205` -- UsersResource.update: `nexla_sdk/resources/users.py:77` -- UsersResource.update_quarantine_settings: `nexla_sdk/resources/users.py:153` +- UsersResource: `nexla_sdk/resources/users.py:9` +- UsersResource.create: `nexla_sdk/resources/users.py:65` +- UsersResource.create_quarantine_settings: `nexla_sdk/resources/users.py:134` +- UsersResource.delete: `nexla_sdk/resources/users.py:93` +- UsersResource.delete_quarantine_settings: `nexla_sdk/resources/users.py:168` +- UsersResource.get: `nexla_sdk/resources/users.py:43` +- UsersResource.get_account_metrics: `nexla_sdk/resources/users.py:258` +- UsersResource.get_audit_log: `nexla_sdk/resources/users.py:181` +- UsersResource.get_current: `nexla_sdk/resources/users.py:116` +- UsersResource.get_daily_metrics: `nexla_sdk/resources/users.py:339` +- UsersResource.get_dashboard_metrics: `nexla_sdk/resources/users.py:319` +- UsersResource.get_flow_status_metrics: `nexla_sdk/resources/users.py:290` +- UsersResource.get_quarantine_settings: `nexla_sdk/resources/users.py:121` +- UsersResource.get_settings: `nexla_sdk/resources/users.py:105` +- UsersResource.get_transferable_resources: `nexla_sdk/resources/users.py:225` +- UsersResource.list: `nexla_sdk/resources/users.py:17` +- UsersResource.transfer_resources: `nexla_sdk/resources/users.py:240` +- UsersResource.update: `nexla_sdk/resources/users.py:80` +- UsersResource.update_quarantine_settings: `nexla_sdk/resources/users.py:152` +### nexla_sdk.resources.webhooks +- WebhooksResource: `nexla_sdk/resources/webhooks.py:11` +- WebhooksResource.send_many_records: `nexla_sdk/resources/webhooks.py:173` +- WebhooksResource.send_one_record: `nexla_sdk/resources/webhooks.py:126` ### nexla_sdk.telemetry -- get_tracer(): `nexla_sdk/telemetry.py:54` -- is_tracing_configured(): `nexla_sdk/telemetry.py:79` +- get_tracer(): `nexla_sdk/telemetry.py:58` +- is_tracing_configured(): `nexla_sdk/telemetry.py:84` diff --git a/docs-site/docs/api/python/modules-index.md b/docs-site/docs/api/python/modules-index.md index f02c312..389a2b6 100644 --- a/docs-site/docs/api/python/modules-index.md +++ b/docs-site/docs/api/python/modules-index.md @@ -91,6 +91,9 @@ slug: /api/python/modules - [nexla_sdk.models.users](./modules/nexla_sdk.models.users.mdx) - [nexla_sdk.models.users.requests](./modules/nexla_sdk.models.users.requests.mdx) - [nexla_sdk.models.users.responses](./modules/nexla_sdk.models.users.responses.mdx) +- [nexla_sdk.models.webhooks](./modules/nexla_sdk.models.webhooks.mdx) +- [nexla_sdk.models.webhooks.requests](./modules/nexla_sdk.models.webhooks.requests.mdx) +- [nexla_sdk.models.webhooks.responses](./modules/nexla_sdk.models.webhooks.responses.mdx) - [nexla_sdk.resources](./modules/nexla_sdk.resources.mdx) - [nexla_sdk.resources.approval_requests](./modules/nexla_sdk.resources.approval_requests.mdx) - [nexla_sdk.resources.async_tasks](./modules/nexla_sdk.resources.async_tasks.mdx) @@ -117,4 +120,5 @@ slug: /api/python/modules - [nexla_sdk.resources.teams](./modules/nexla_sdk.resources.teams.mdx) - [nexla_sdk.resources.transforms](./modules/nexla_sdk.resources.transforms.mdx) - [nexla_sdk.resources.users](./modules/nexla_sdk.resources.users.mdx) +- [nexla_sdk.resources.webhooks](./modules/nexla_sdk.resources.webhooks.mdx) - [nexla_sdk.telemetry](./modules/nexla_sdk.telemetry.mdx) diff --git a/docs-site/docs/api/python/modules/nexla_sdk.auth.mdx b/docs-site/docs/api/python/modules/nexla_sdk.auth.mdx index d36920b..125248b 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.auth.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.auth.mdx @@ -12,7 +12,7 @@ Authentication utilities for the Nexla SDK ### TokenAuthHandler -Defined in `nexla_sdk/auth.py:14` +Defined in `nexla_sdk/auth.py:15` Handles authentication and token management for Nexla API @@ -21,13 +21,13 @@ Supports two authentication flows as per Nexla API documentation: 1. **Service Key Flow**: Uses service keys to obtain session tokens via POST to /token endpoint with `Authorization: Basic `. Automatically refreshes tokens before expiry using /token/refresh endpoint. - + 2. **Direct Token Flow**: Uses pre-obtained access tokens directly. These tokens expire after a configured interval (usually 1 hour). Responsible for: - Obtaining session tokens using service keys (Basic auth) -- Using directly provided access tokens (Bearer auth) +- Using directly provided access tokens (Bearer auth) - Refreshing session tokens before expiry (service key flow only) - Ensuring valid tokens are available for API requests - Handling authentication retries on 401 responses @@ -35,21 +35,21 @@ Responsible for: Methods: - `ensure_valid_token(self) -> str` - - Source: `nexla_sdk/auth.py:145` + - Source: `nexla_sdk/auth.py:154` - Ensures a valid session token is available, refreshing if necessary - `execute_authenticated_request(self, method: str, url: str, headers: Dict[str, str], **kwargs) -> Optional[Dict[str, Any]]` - - Source: `nexla_sdk/auth.py:191` + - Source: `nexla_sdk/auth.py:202` - Execute a request with authentication handling - `get_access_token(self) -> str` - - Source: `nexla_sdk/auth.py:69` + - Source: `nexla_sdk/auth.py:72` - Get the current access token - `logout(self) -> None` - - Source: `nexla_sdk/auth.py:170` + - Source: `nexla_sdk/auth.py:179` - Ends the current session and invalidates the NexlaSessionToken. - `obtain_session_token(self) -> None` - - Source: `nexla_sdk/auth.py:83` + - Source: `nexla_sdk/auth.py:88` - Obtains a session token using the service key - `refresh_session_token(self) -> None` - - Source: `nexla_sdk/auth.py:134` + - Source: `nexla_sdk/auth.py:143` - Refresh token (compat shim). diff --git a/docs-site/docs/api/python/modules/nexla_sdk.client.mdx b/docs-site/docs/api/python/modules/nexla_sdk.client.mdx index c92de38..f6059b8 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.client.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.client.mdx @@ -12,7 +12,7 @@ Nexla API client ### NexlaClient -Defined in `nexla_sdk/client.py:44` +Defined in `nexla_sdk/client.py:52` Client for the Nexla API @@ -22,20 +22,20 @@ The Nexla API supports two authentication methods: Service keys are long-lived credentials created in the Nexla UI. The SDK obtains session tokens using the service key on demand and re-obtains a new token as needed. No refresh endpoint is used. - + 2. **Direct Access Token Authentication**: Use a pre-obtained access token directly. These tokens are not refreshed by the SDK. Examples: # Method 1: Using service key (recommended for automation) client = NexlaClient(service_key="your-service-key") - + # Method 2: Using access token directly (manual/short-term use) client = NexlaClient(access_token="your-access-token") - + # Using the client (same regardless of authentication method) flows = client.flows.list() - + Note: - Service keys should be treated as highly sensitive credentials - Only provide either service_key OR access_token, not both @@ -44,16 +44,19 @@ Note: Methods: +- `create_webhook_client(self, api_key: str) -> nexla_sdk.resources.webhooks.WebhooksResource` + - Source: `nexla_sdk/client.py:243` + - Create a webhook client for sending data to Nexla webhooks. - `get_access_token(self) -> str` - - Source: `nexla_sdk/client.py:179` + - Source: `nexla_sdk/client.py:193` - Get a valid access token. - `logout(self) -> None` - - Source: `nexla_sdk/client.py:221` + - Source: `nexla_sdk/client.py:235` - Logout current session and invalidate token. - `refresh_access_token(self) -> str` - - Source: `nexla_sdk/client.py:201` + - Source: `nexla_sdk/client.py:215` - Obtain a fresh token and return it. - `request(self, method: str, path: str, **kwargs) -> Optional[Dict[str, Any]]` - - Source: `nexla_sdk/client.py:260` + - Source: `nexla_sdk/client.py:316` - Send a request to the Nexla API diff --git a/docs-site/docs/api/python/modules/nexla_sdk.exceptions.mdx b/docs-site/docs/api/python/modules/nexla_sdk.exceptions.mdx index aa3c387..8e4e4b5 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.exceptions.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.exceptions.mdx @@ -10,50 +10,50 @@ keywords: [Nexla, SDK, Python, API] ### AuthenticationError -Defined in `nexla_sdk/exceptions.py:70` +Defined in `nexla_sdk/exceptions.py:72` Raised when authentication fails. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### AuthorizationError -Defined in `nexla_sdk/exceptions.py:80` +Defined in `nexla_sdk/exceptions.py:82` Raised when user lacks permission. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### CredentialError -Defined in `nexla_sdk/exceptions.py:113` +Defined in `nexla_sdk/exceptions.py:120` Raised when credential validation fails. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### FlowError -Defined in `nexla_sdk/exceptions.py:125` +Defined in `nexla_sdk/exceptions.py:132` Raised when flow operations fail. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### NexlaError @@ -65,78 +65,78 @@ Base exception for all Nexla errors. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### NotFoundError -Defined in `nexla_sdk/exceptions.py:85` +Defined in `nexla_sdk/exceptions.py:88` Raised when a resource is not found. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### RateLimitError -Defined in `nexla_sdk/exceptions.py:95` +Defined in `nexla_sdk/exceptions.py:100` Raised when rate limit is exceeded. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### ResourceConflictError -Defined in `nexla_sdk/exceptions.py:108` +Defined in `nexla_sdk/exceptions.py:114` Raised when resource conflicts occur. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### ServerError -Defined in `nexla_sdk/exceptions.py:103` +Defined in `nexla_sdk/exceptions.py:108` Raised when server returns 5xx error. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### TransformError -Defined in `nexla_sdk/exceptions.py:139` +Defined in `nexla_sdk/exceptions.py:152` Raised when transform operations fail. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### ValidationError -Defined in `nexla_sdk/exceptions.py:90` +Defined in `nexla_sdk/exceptions.py:94` Raised when request validation fails. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.http_client.mdx b/docs-site/docs/api/python/modules/nexla_sdk.http_client.mdx index d5ce802..3e3fb8d 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.http_client.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.http_client.mdx @@ -12,13 +12,13 @@ HTTP client interface and implementations for Nexla SDK ### HttpClientError -Defined in `nexla_sdk/http_client.py:60` +Defined in `nexla_sdk/http_client.py:66` Base exception for HTTP client errors ### HttpClientInterface -Defined in `nexla_sdk/http_client.py:34` +Defined in `nexla_sdk/http_client.py:38` Abstract interface for HTTP clients used by the Nexla SDK. This allows for different HTTP client implementations or mocks for testing. @@ -26,24 +26,18 @@ This allows for different HTTP client implementations or mocks for testing. Methods: - `request(self, method: str, url: str, headers: Dict[str, str], **kwargs) -> Optional[Dict[str, Any]]` - - Source: `nexla_sdk/http_client.py:40` + - Source: `nexla_sdk/http_client.py:44` - Send an HTTP request ### RequestsHttpClient -Defined in `nexla_sdk/http_client.py:69` +Defined in `nexla_sdk/http_client.py:82` HTTP client implementation using the requests library with retries and timeouts. Methods: - `request(self, method: str, url: str, headers: Dict[str, str], **kwargs) -> Optional[Dict[str, Any]]` - - Source: `nexla_sdk/http_client.py:98` + - Source: `nexla_sdk/http_client.py:119` - Send an HTTP request using a session with sane defaults. -## Functions - -### `inject(carrier: Dict[str, str]) -> None` - -Source: `nexla_sdk/http_client.py:30` - diff --git a/docs-site/docs/api/python/modules/nexla_sdk.mdx b/docs-site/docs/api/python/modules/nexla_sdk.mdx index 960e9f3..96ba83f 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.mdx @@ -25,211 +25,211 @@ Members: ### ApprovalRequestsResource -Defined in `nexla_sdk/resources/approval_requests.py:6` +Defined in `nexla_sdk/resources/approval_requests.py:7` Resource for managing approval requests. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `approve(self, request_id: int) -> nexla_sdk.models.approval_requests.responses.ApprovalRequest` - - Source: `nexla_sdk/resources/approval_requests.py:24` + - Source: `nexla_sdk/resources/approval_requests.py:25` - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `list_pending(self) -> List[nexla_sdk.models.approval_requests.responses.ApprovalRequest]` - - Source: `nexla_sdk/resources/approval_requests.py:14` + - Source: `nexla_sdk/resources/approval_requests.py:15` - `list_requested(self) -> List[nexla_sdk.models.approval_requests.responses.ApprovalRequest]` - - Source: `nexla_sdk/resources/approval_requests.py:19` + - Source: `nexla_sdk/resources/approval_requests.py:20` - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `reject(self, request_id: int, reason: str = '') -> nexla_sdk.models.approval_requests.responses.ApprovalRequest` - - Source: `nexla_sdk/resources/approval_requests.py:29` + - Source: `nexla_sdk/resources/approval_requests.py:30` - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### AsyncTasksResource -Defined in `nexla_sdk/resources/async_tasks.py:7` +Defined in `nexla_sdk/resources/async_tasks.py:8` Resource for managing asynchronous tasks. Methods: - `acknowledge(self, task_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/async_tasks.py:72` + - Source: `nexla_sdk/resources/async_tasks.py:73` - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, payload: nexla_sdk.models.async_tasks.requests.AsyncTaskCreate) -> nexla_sdk.models.async_tasks.responses.AsyncTask` - - Source: `nexla_sdk/resources/async_tasks.py:20` + - Source: `nexla_sdk/resources/async_tasks.py:21` - Create/start an asynchronous task. - `delete(self, task_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/async_tasks.py:49` + - Source: `nexla_sdk/resources/async_tasks.py:50` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `download_link(self, task_id: int) -> Union[str, nexla_sdk.models.async_tasks.responses.DownloadLink]` - - Source: `nexla_sdk/resources/async_tasks.py:62` + - Source: `nexla_sdk/resources/async_tasks.py:63` - `explain_arguments(self, task_type: str) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/async_tasks.py:40` + - Source: `nexla_sdk/resources/async_tasks.py:41` - `get(self, task_id: int) -> nexla_sdk.models.async_tasks.responses.AsyncTask` - - Source: `nexla_sdk/resources/async_tasks.py:44` + - Source: `nexla_sdk/resources/async_tasks.py:45` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self) -> List[nexla_sdk.models.async_tasks.responses.AsyncTask]` - - Source: `nexla_sdk/resources/async_tasks.py:15` + - Source: `nexla_sdk/resources/async_tasks.py:16` - List asynchronous tasks. - `list_by_status(self, status: str) -> List[nexla_sdk.models.async_tasks.responses.AsyncTask]` - - Source: `nexla_sdk/resources/async_tasks.py:31` + - Source: `nexla_sdk/resources/async_tasks.py:32` - `list_of_type(self, task_type: str) -> List[nexla_sdk.models.async_tasks.responses.AsyncTask]` - - Source: `nexla_sdk/resources/async_tasks.py:26` + - Source: `nexla_sdk/resources/async_tasks.py:27` - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `rerun(self, task_id: int) -> nexla_sdk.models.async_tasks.responses.AsyncTask` - - Source: `nexla_sdk/resources/async_tasks.py:53` + - Source: `nexla_sdk/resources/async_tasks.py:54` - `result(self, task_id: int) -> Optional[Dict[str, Any]]` - - Source: `nexla_sdk/resources/async_tasks.py:58` + - Source: `nexla_sdk/resources/async_tasks.py:59` - `types(self) -> List[str]` - - Source: `nexla_sdk/resources/async_tasks.py:36` + - Source: `nexla_sdk/resources/async_tasks.py:37` - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### AttributeTransformsResource -Defined in `nexla_sdk/resources/attribute_transforms.py:9` +Defined in `nexla_sdk/resources/attribute_transforms.py:11` Resource for reusable attribute transforms (aliased to code containers). Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.attribute_transforms.requests.AttributeTransformCreate) -> nexla_sdk.models.attribute_transforms.responses.AttributeTransform` - - Source: `nexla_sdk/resources/attribute_transforms.py:39` + - Source: `nexla_sdk/resources/attribute_transforms.py:43` - Create a new attribute transform. - `delete(self, attribute_transform_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/attribute_transforms.py:47` + - Source: `nexla_sdk/resources/attribute_transforms.py:53` - Delete an attribute transform by ID. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, attribute_transform_id: int, expand: bool = False) -> nexla_sdk.models.attribute_transforms.responses.AttributeTransform` - - Source: `nexla_sdk/resources/attribute_transforms.py:35` + - Source: `nexla_sdk/resources/attribute_transforms.py:37` - Get an attribute transform by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, **kwargs) -> List[nexla_sdk.models.attribute_transforms.responses.AttributeTransform]` - - Source: `nexla_sdk/resources/attribute_transforms.py:17` + - Source: `nexla_sdk/resources/attribute_transforms.py:19` - List attribute transforms with optional filters. - `list_public(self) -> List[nexla_sdk.models.attribute_transforms.responses.AttributeTransform]` - - Source: `nexla_sdk/resources/attribute_transforms.py:51` + - Source: `nexla_sdk/resources/attribute_transforms.py:57` - List publicly shared attribute transforms. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, attribute_transform_id: int, data: nexla_sdk.models.attribute_transforms.requests.AttributeTransformUpdate) -> nexla_sdk.models.attribute_transforms.responses.AttributeTransform` - - Source: `nexla_sdk/resources/attribute_transforms.py:43` + - Source: `nexla_sdk/resources/attribute_transforms.py:47` - Update an attribute transform by ID. ### AuthenticationError -Defined in `nexla_sdk/exceptions.py:70` +Defined in `nexla_sdk/exceptions.py:72` Raised when authentication fails. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### AuthorizationError -Defined in `nexla_sdk/exceptions.py:80` +Defined in `nexla_sdk/exceptions.py:82` Raised when user lacks permission. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### BaseModel -Defined in `nexla_sdk/models/base.py:8` +Defined in `nexla_sdk/models/base.py:10` Base model class with Pydantic functionality and Nexla API compatibility. @@ -244,69 +244,69 @@ Features: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### CodeContainersResource -Defined in `nexla_sdk/resources/code_containers.py:7` +Defined in `nexla_sdk/resources/code_containers.py:11` Resource for managing code containers. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, code_container_id: int) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:61` + - Source: `nexla_sdk/resources/code_containers.py:67` - Copy a code container by ID. - `create(self, data: nexla_sdk.models.code_containers.requests.CodeContainerCreate) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:41` + - Source: `nexla_sdk/resources/code_containers.py:45` - Create a new code container. - `delete(self, code_container_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/code_containers.py:57` + - Source: `nexla_sdk/resources/code_containers.py:63` - Delete a code container by ID. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, code_container_id: int, expand: bool = False) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:33` + - Source: `nexla_sdk/resources/code_containers.py:37` - Get a code container by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, **kwargs) -> List[nexla_sdk.models.code_containers.responses.CodeContainer]` - - Source: `nexla_sdk/resources/code_containers.py:15` + - Source: `nexla_sdk/resources/code_containers.py:19` - List code containers with optional filters. - `list_public(self) -> List[nexla_sdk.models.code_containers.responses.CodeContainer]` - - Source: `nexla_sdk/resources/code_containers.py:65` + - Source: `nexla_sdk/resources/code_containers.py:71` - List publicly shared code containers. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, code_container_id: int, data: nexla_sdk.models.code_containers.requests.CodeContainerUpdate) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:49` + - Source: `nexla_sdk/resources/code_containers.py:53` - Update an existing code container. ### Connector -Defined in `nexla_sdk/models/common.py:31` +Defined in `nexla_sdk/models/common.py:34` Connector information. @@ -322,15 +322,15 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ConnectorCategory -Defined in `nexla_sdk/models/enums.py:85` +Defined in `nexla_sdk/models/enums.py:93` Connector categories. @@ -346,244 +346,244 @@ Members: ### CredentialError -Defined in `nexla_sdk/exceptions.py:113` +Defined in `nexla_sdk/exceptions.py:120` Raised when credential validation fails. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### CredentialsResource -Defined in `nexla_sdk/resources/credentials.py:10` +Defined in `nexla_sdk/resources/credentials.py:19` Resource for managing data credentials. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.credentials.requests.CredentialCreate) -> nexla_sdk.models.credentials.responses.Credential` - - Source: `nexla_sdk/resources/credentials.py:66` + - Source: `nexla_sdk/resources/credentials.py:75` - Create new credential. - `delete(self, credential_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/credentials.py:96` + - Source: `nexla_sdk/resources/credentials.py:105` - Delete credential. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, credential_id: int, expand: bool = False) -> nexla_sdk.models.credentials.responses.Credential` - - Source: `nexla_sdk/resources/credentials.py:50` + - Source: `nexla_sdk/resources/credentials.py:59` - Get single credential by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, credentials_type: Optional[str] = None, **kwargs) -> List[nexla_sdk.models.credentials.responses.Credential]` - - Source: `nexla_sdk/resources/credentials.py:18` + - Source: `nexla_sdk/resources/credentials.py:27` - List credentials with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `probe(self, credential_id: int, async_mode: bool = False, request_id: Optional[int] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/credentials.py:108` + - Source: `nexla_sdk/resources/credentials.py:117` - Test credential validity. - `probe_sample(self, credential_id: int, request: nexla_sdk.models.credentials.requests.ProbeSampleRequest, async_mode: bool = False, request_id: Optional[int] = None) -> nexla_sdk.models.credentials.responses.ProbeSampleResponse` - - Source: `nexla_sdk/resources/credentials.py:158` + - Source: `nexla_sdk/resources/credentials.py:183` - Preview data content accessible by credential. - `probe_tree(self, credential_id: int, request: nexla_sdk.models.credentials.requests.ProbeTreeRequest, async_mode: bool = False, request_id: Optional[int] = None) -> nexla_sdk.models.credentials.responses.ProbeTreeResponse` - - Source: `nexla_sdk/resources/credentials.py:134` + - Source: `nexla_sdk/resources/credentials.py:155` - Preview storage structure accessible by credential. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, credential_id: int, data: nexla_sdk.models.credentials.requests.CredentialUpdate) -> nexla_sdk.models.credentials.responses.Credential` - - Source: `nexla_sdk/resources/credentials.py:83` + - Source: `nexla_sdk/resources/credentials.py:92` - Update credential. ### DataSchemasResource -Defined in `nexla_sdk/resources/data_schemas.py:6` +Defined in `nexla_sdk/resources/data_schemas.py:7` Resource for data schemas (accessors + audit log only). Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. - `get_audit_log(self, schema_id: int, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/data_schemas.py:14` + - Source: `nexla_sdk/resources/data_schemas.py:15` - Get audit log for resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### DestinationsResource -Defined in `nexla_sdk/resources/destinations.py:7` +Defined in `nexla_sdk/resources/destinations.py:12` Resource for managing destinations (data sinks). Methods: - `activate(self, sink_id: int) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:89` + - Source: `nexla_sdk/resources/destinations.py:94` - Activate destination. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, sink_id: int, options: Optional[nexla_sdk.models.destinations.requests.DestinationCopyOptions] = None) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:113` + - Source: `nexla_sdk/resources/destinations.py:118` - Copy a destination. - `create(self, data: nexla_sdk.models.destinations.requests.DestinationCreate) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:49` + - Source: `nexla_sdk/resources/destinations.py:54` - Create new destination. - `delete(self, sink_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/destinations.py:77` + - Source: `nexla_sdk/resources/destinations.py:82` - Delete destination. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, sink_id: int, expand: bool = False) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:33` + - Source: `nexla_sdk/resources/destinations.py:38` - Get single destination by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, **kwargs) -> List[nexla_sdk.models.destinations.responses.Destination]` - - Source: `nexla_sdk/resources/destinations.py:15` + - Source: `nexla_sdk/resources/destinations.py:20` - List destinations with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, sink_id: int) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:101` + - Source: `nexla_sdk/resources/destinations.py:106` - Pause destination. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, sink_id: int, data: nexla_sdk.models.destinations.requests.DestinationUpdate) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:64` + - Source: `nexla_sdk/resources/destinations.py:69` - Update destination. ### DocContainersResource -Defined in `nexla_sdk/resources/doc_containers.py:6` +Defined in `nexla_sdk/resources/doc_containers.py:7` Resource for document containers accessors and audit logs. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. - `get_audit_log(self, doc_container_id: int, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/doc_containers.py:14` + - Source: `nexla_sdk/resources/doc_containers.py:15` - Get audit log for resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### FlowError -Defined in `nexla_sdk/exceptions.py:125` +Defined in `nexla_sdk/exceptions.py:132` Raised when flow operations fail. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### FlowNode -Defined in `nexla_sdk/models/common.py:61` +Defined in `nexla_sdk/models/common.py:66` Flow node in a data pipeline. @@ -591,173 +591,188 @@ Fields: - `id`: `int` - `origin_node_id`: `int` -- `parent_node_id`: `typing.Optional[int]` -- `data_source_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` -- `data_sink_id`: `typing.Optional[int]` -- `status`: `typing.Optional[str]` -- `project_id`: `typing.Optional[int]` -- `flow_type`: `typing.Optional[str]` -- `ingestion_mode`: `typing.Optional[str]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `children`: `typing.Optional[typing.List[nexla_sdk.models.common.FlowNode]]` +- `parent_node_id`: `Optional` +- `data_source_id`: `Optional` +- `data_set_id`: `Optional` +- `data_sink_id`: `Optional` +- `status`: `Optional` +- `project_id`: `Optional` +- `flow_type`: `Optional` +- `ingestion_mode`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `children`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### FlowsResource -Defined in `nexla_sdk/resources/flows.py:7` +Defined in `nexla_sdk/resources/flows.py:21` Resource for managing data flows. Methods: - `activate(self, flow_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:83` + - Source: `nexla_sdk/resources/flows.py:117` - Activate a flow. -- `activate_by_resource(self, resource_type: str, resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:164` +- `activate_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:314` - Activate flow by resource ID. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, flow_id: int, options: Optional[nexla_sdk.models.flows.requests.FlowCopyOptions] = None) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:125` + - Source: `nexla_sdk/resources/flows.py:171` - Copy a flow. +- `copy_and_replace_credentials(self, flow_id: int, resource_credential_mapping: Dict[int, int], copy_options: Optional[nexla_sdk.models.flows.requests.FlowCopyOptions] = None, target_project_id: Optional[int] = None) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:186` + - Copy a flow and replace credentials on specified resources. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, flow_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:138` + - Source: `nexla_sdk/resources/flows.py:282` - Delete flow. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. -- `delete_by_resource(self, resource_type: str, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:150` +- `delete_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:294` - Delete flow by resource ID. -- `docs_recommendation(self, flow_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:216` +- `docs_recommendation(self, flow_id: int) -> Union[nexla_sdk.models.flows.responses.DocsRecommendation, Dict[str, Any]]` + - Source: `nexla_sdk/resources/flows.py:378` - Generate AI suggestion for flow documentation. -- `get(self, flow_id: int, flows_only: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:46` +- `get(self, flow_id: int, flows_only: bool = False, include_run_metrics: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:67` - Get flow by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_active_flows_metrics(self, from_date: str = None, to_date: str = None, org_id: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:475` + - Get metrics for currently active flows. +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. -- `get_by_resource(self, resource_type: str, resource_id: int, flows_only: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:62` +- `get_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, flows_only: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:90` - Get flow by resource ID. -- `get_logs(self, resource_type: str, resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:221` +- `get_flow_logs(self, flow_id: int, from_date: str = None, to_date: str = None, severity: str = None, run_id: int = None, page: int = None, per_page: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:397` + - Get execution logs for a specific flow. +- `get_logs(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.flows.responses.FlowLogsResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/flows.py:529` - Get flow execution logs for a specific run id of a flow. -- `get_metrics(self, resource_type: str, resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:243` +- `get_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.flows.responses.FlowMetricsApiResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/flows.py:581` - Get flow metrics for a flow node keyed by resource id. -- `list(self, flows_only: bool = False, include_run_metrics: bool = False, **kwargs) -> List[nexla_sdk.models.flows.responses.FlowResponse]` - - Source: `nexla_sdk/resources/flows.py:15` +- `get_run_status(self, flow_id: int, run_id: int) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:499` + - Get status of a specific flow run. +- `list(self, flows_only: bool = False, include_run_metrics: bool = False, access_role: Optional[str] = None, **kwargs) -> List[nexla_sdk.models.flows.responses.FlowResponse]` + - Source: `nexla_sdk/resources/flows.py:29` - List flows with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. -- `pause(self, flow_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:104` +- `pause(self, flow_id: int, all: bool = False, full_tree: bool = False, async_mode: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:140` - Pause a flow. -- `pause_by_resource(self, resource_type: str, resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:190` +- `pause_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:346` - Pause flow by resource ID. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. +- `search_flow_logs(self, flow_id: int, run_ids: str = None, severity: str = None, search_string: str = None, from_date: str = None, to_date: str = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:438` + - Advanced search for flow execution logs. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### GenAIResource -Defined in `nexla_sdk/resources/genai.py:9` +Defined in `nexla_sdk/resources/genai.py:16` Resource for GenAI configurations and org settings. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `create_config(self, payload: nexla_sdk.models.genai.requests.GenAiConfigCreatePayload) -> nexla_sdk.models.genai.responses.GenAiConfig` - - Source: `nexla_sdk/resources/genai.py:22` + - Source: `nexla_sdk/resources/genai.py:29` - `create_org_setting(self, payload: nexla_sdk.models.genai.requests.GenAiOrgSettingPayload) -> nexla_sdk.models.genai.responses.GenAiOrgSetting` - - Source: `nexla_sdk/resources/genai.py:49` + - Source: `nexla_sdk/resources/genai.py:66` - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_config(self, gen_ai_config_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/genai.py:36` + - Source: `nexla_sdk/resources/genai.py:49` - `delete_org_setting(self, gen_ai_org_setting_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/genai.py:58` + - Source: `nexla_sdk/resources/genai.py:77` - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_config(self, gen_ai_config_id: int) -> nexla_sdk.models.genai.responses.GenAiConfig` - - Source: `nexla_sdk/resources/genai.py:27` + - Source: `nexla_sdk/resources/genai.py:34` - `get_org_setting(self, gen_ai_org_setting_id: int) -> nexla_sdk.models.genai.responses.GenAiOrgSetting` - - Source: `nexla_sdk/resources/genai.py:54` + - Source: `nexla_sdk/resources/genai.py:71` - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `list_configs(self) -> List[nexla_sdk.models.genai.responses.GenAiConfig]` - - Source: `nexla_sdk/resources/genai.py:18` + - Source: `nexla_sdk/resources/genai.py:25` - `list_org_settings(self, org_id: int = None, all: bool = False) -> List[nexla_sdk.models.genai.responses.GenAiOrgSetting]` - - Source: `nexla_sdk/resources/genai.py:40` + - Source: `nexla_sdk/resources/genai.py:55` - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `show_active_config(self, gen_ai_usage: str) -> nexla_sdk.models.genai.responses.ActiveConfigView` - - Source: `nexla_sdk/resources/genai.py:61` + - Source: `nexla_sdk/resources/genai.py:82` - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. - `update_config(self, gen_ai_config_id: int, payload: nexla_sdk.models.genai.requests.GenAiConfigPayload) -> nexla_sdk.models.genai.responses.GenAiConfig` - - Source: `nexla_sdk/resources/genai.py:31` + - Source: `nexla_sdk/resources/genai.py:40` ### LogEntry -Defined in `nexla_sdk/models/common.py:41` +Defined in `nexla_sdk/models/common.py:45` Audit log entry. @@ -767,168 +782,168 @@ Fields: - `item_type`: `str` - `item_id`: `int` - `event`: `str` -- `change_summary`: `typing.List[str]` -- `object_changes`: `typing.Dict[str, typing.List[typing.Any]]` +- `change_summary`: `List` +- `object_changes`: `Dict` - `request_ip`: `str` - `request_user_agent`: `str` - `request_url`: `str` -- `user`: `typing.Dict[str, typing.Any]` +- `user`: `Dict` - `org_id`: `int` - `owner_id`: `int` - `owner_email`: `str` - `created_at`: `datetime` -- `association_resource`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `impersonator_id`: `typing.Optional[str]` +- `association_resource`: `Optional` +- `impersonator_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### LookupsResource -Defined in `nexla_sdk/resources/lookups.py:8` +Defined in `nexla_sdk/resources/lookups.py:14` Resource for managing lookups (data maps). Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.lookups.requests.LookupCreate) -> nexla_sdk.models.lookups.responses.Lookup` - - Source: `nexla_sdk/resources/lookups.py:50` + - Source: `nexla_sdk/resources/lookups.py:56` - Create new lookup. - `delete(self, data_map_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/lookups.py:78` + - Source: `nexla_sdk/resources/lookups.py:84` - Delete lookup. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_entries(self, data_map_id: int, entry_keys: Union[str, List[str]]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/lookups.py:131` + - Source: `nexla_sdk/resources/lookups.py:137` - Delete specific entries from a lookup. - `get(self, data_map_id: int, expand: bool = False) -> nexla_sdk.models.lookups.responses.Lookup` - - Source: `nexla_sdk/resources/lookups.py:34` + - Source: `nexla_sdk/resources/lookups.py:40` - Get single lookup by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_entries(self, data_map_id: int, entry_keys: Union[str, List[str]]) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/lookups.py:110` + - Source: `nexla_sdk/resources/lookups.py:116` - Get specific entries from a lookup. - `list(self, **kwargs) -> List[nexla_sdk.models.lookups.responses.Lookup]` - - Source: `nexla_sdk/resources/lookups.py:16` + - Source: `nexla_sdk/resources/lookups.py:22` - List lookups with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, data_map_id: int, data: nexla_sdk.models.lookups.requests.LookupUpdate) -> nexla_sdk.models.lookups.responses.Lookup` - - Source: `nexla_sdk/resources/lookups.py:65` + - Source: `nexla_sdk/resources/lookups.py:71` - Update lookup. - `upsert_entries(self, data_map_id: int, entries: List[Dict[str, Any]]) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/lookups.py:90` + - Source: `nexla_sdk/resources/lookups.py:96` - Upsert entries in a lookup. ### MarketplaceResource -Defined in `nexla_sdk/resources/marketplace.py:11` +Defined in `nexla_sdk/resources/marketplace.py:16` Resource for marketplace domains and items. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `add_domain_custodians(self, domain_id: int, payload: nexla_sdk.models.marketplace.requests.CustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/marketplace.py:70` + - Source: `nexla_sdk/resources/marketplace.py:91` - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `create_domain(self, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainCreate) -> nexla_sdk.models.marketplace.responses.MarketplaceDomain` - - Source: `nexla_sdk/resources/marketplace.py:42` + - Source: `nexla_sdk/resources/marketplace.py:53` - `create_domain_item(self, domain_id: int, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainsItemCreate) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomainsItem]` - - Source: `nexla_sdk/resources/marketplace.py:55` + - Source: `nexla_sdk/resources/marketplace.py:66` - `create_domains(self, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainCreate) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomain]` - - Source: `nexla_sdk/resources/marketplace.py:24` + - Source: `nexla_sdk/resources/marketplace.py:29` - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_domain(self, domain_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/marketplace.py:47` + - Source: `nexla_sdk/resources/marketplace.py:58` - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_domain(self, domain_id: int) -> nexla_sdk.models.marketplace.responses.MarketplaceDomain` - - Source: `nexla_sdk/resources/marketplace.py:33` + - Source: `nexla_sdk/resources/marketplace.py:40` - `get_domains_for_org(self, org_id: int) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomain]` - - Source: `nexla_sdk/resources/marketplace.py:29` + - Source: `nexla_sdk/resources/marketplace.py:34` - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `list_domain_custodians(self, domain_id: int) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/marketplace.py:61` + - Source: `nexla_sdk/resources/marketplace.py:76` - `list_domain_items(self, domain_id: int) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomainsItem]` - - Source: `nexla_sdk/resources/marketplace.py:51` + - Source: `nexla_sdk/resources/marketplace.py:62` - `list_domains(self) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomain]` - - Source: `nexla_sdk/resources/marketplace.py:20` + - Source: `nexla_sdk/resources/marketplace.py:25` - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `remove_domain_custodians(self, domain_id: int, payload: nexla_sdk.models.marketplace.requests.CustodiansPayload) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/marketplace.py:75` + - Source: `nexla_sdk/resources/marketplace.py:100` - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. - `update_domain(self, domain_id: int, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainCreate) -> nexla_sdk.models.marketplace.responses.MarketplaceDomain` - - Source: `nexla_sdk/resources/marketplace.py:37` + - Source: `nexla_sdk/resources/marketplace.py:44` - `update_domain_custodians(self, domain_id: int, payload: nexla_sdk.models.marketplace.requests.CustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/marketplace.py:65` + - Source: `nexla_sdk/resources/marketplace.py:82` ### MetricsResource -Defined in `nexla_sdk/resources/metrics.py:10` +Defined in `nexla_sdk/resources/metrics.py:26` Resource for retrieving metrics. @@ -939,64 +954,72 @@ so no additional typed overrides are needed. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. -- `get_flow_logs(self, resource_type: str, resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/metrics.py:120` -- `get_flow_metrics(self, resource_type: str, resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/metrics.py:97` +- `get_flow_logs(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.metrics.responses.ResourceFlowLogsResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/metrics.py:216` + - Get flow logs for a flow run keyed by resource ID. +- `get_flow_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.metrics.responses.ResourceFlowMetricsResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/metrics.py:162` + - Get flow metrics for a flow node keyed by resource ID. +- `get_flow_metrics_summary(self, period: str) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/metrics.py:148` + - Get flow metrics summary for a given period. - `get_rate_limits(self) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/metrics.py:86` + - Source: `nexla_sdk/resources/metrics.py:111` - Get current rate limit and usage. -- `get_resource_daily_metrics(self, resource_type: nexla_sdk.models.metrics.enums.ResourceType, resource_id: int, from_date: str, to_date: Optional[str] = None) -> nexla_sdk.models.metrics.responses.MetricsResponse` - - Source: `nexla_sdk/resources/metrics.py:23` +- `get_resource_daily_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, from_date: str, to_date: Optional[str] = None) -> nexla_sdk.models.metrics.responses.MetricsResponse` + - Source: `nexla_sdk/resources/metrics.py:39` - Get daily metrics for a resource. -- `get_resource_metrics_by_run(self, resource_type: nexla_sdk.models.metrics.enums.ResourceType, resource_id: int, groupby: Optional[str] = None, orderby: Optional[str] = None, page: Optional[int] = None, size: Optional[int] = None) -> nexla_sdk.models.metrics.responses.MetricsByRunResponse` - - Source: `nexla_sdk/resources/metrics.py:51` +- `get_resource_flow_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, metric_type: str = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/metrics.py:121` + - Get flow metrics for a specific resource. +- `get_resource_metrics_by_run(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, groupby: Optional[str] = None, orderby: Optional[str] = None, page: Optional[int] = None, size: Optional[int] = None) -> nexla_sdk.models.metrics.responses.MetricsByRunResponse` + - Source: `nexla_sdk/resources/metrics.py:70` - Get metrics by run for a resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### NexlaClient -Defined in `nexla_sdk/client.py:44` +Defined in `nexla_sdk/client.py:52` Client for the Nexla API @@ -1006,20 +1029,20 @@ The Nexla API supports two authentication methods: Service keys are long-lived credentials created in the Nexla UI. The SDK obtains session tokens using the service key on demand and re-obtains a new token as needed. No refresh endpoint is used. - + 2. **Direct Access Token Authentication**: Use a pre-obtained access token directly. These tokens are not refreshed by the SDK. Examples: # Method 1: Using service key (recommended for automation) client = NexlaClient(service_key="your-service-key") - + # Method 2: Using access token directly (manual/short-term use) client = NexlaClient(access_token="your-access-token") - + # Using the client (same regardless of authentication method) flows = client.flows.list() - + Note: - Service keys should be treated as highly sensitive credentials - Only provide either service_key OR access_token, not both @@ -1028,17 +1051,20 @@ Note: Methods: +- `create_webhook_client(self, api_key: str) -> nexla_sdk.resources.webhooks.WebhooksResource` + - Source: `nexla_sdk/client.py:243` + - Create a webhook client for sending data to Nexla webhooks. - `get_access_token(self) -> str` - - Source: `nexla_sdk/client.py:179` + - Source: `nexla_sdk/client.py:193` - Get a valid access token. - `logout(self) -> None` - - Source: `nexla_sdk/client.py:221` + - Source: `nexla_sdk/client.py:235` - Logout current session and invalidate token. - `refresh_access_token(self) -> str` - - Source: `nexla_sdk/client.py:201` + - Source: `nexla_sdk/client.py:215` - Obtain a fresh token and return it. - `request(self, method: str, path: str, **kwargs) -> Optional[Dict[str, Any]]` - - Source: `nexla_sdk/client.py:260` + - Source: `nexla_sdk/client.py:316` - Send a request to the Nexla API ### NexlaError @@ -1050,81 +1076,81 @@ Base exception for all Nexla errors. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### NexsetsResource -Defined in `nexla_sdk/resources/nexsets.py:7` +Defined in `nexla_sdk/resources/nexsets.py:12` Resource for managing nexsets (data sets). Methods: - `activate(self, set_id: int) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:89` + - Source: `nexla_sdk/resources/nexsets.py:94` - Activate nexset. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, set_id: int, options: Optional[nexla_sdk.models.nexsets.requests.NexsetCopyOptions] = None) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:144` + - Source: `nexla_sdk/resources/nexsets.py:147` - Copy a nexset. - `create(self, data: nexla_sdk.models.nexsets.requests.NexsetCreate) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:49` + - Source: `nexla_sdk/resources/nexsets.py:54` - Create new nexset. - `delete(self, set_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/nexsets.py:77` + - Source: `nexla_sdk/resources/nexsets.py:82` - Delete nexset. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `docs_recommendation(self, set_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/nexsets.py:158` + - Source: `nexla_sdk/resources/nexsets.py:161` - Generate AI suggestion for Nexset documentation. - `get(self, set_id: int, expand: bool = False) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:33` + - Source: `nexla_sdk/resources/nexsets.py:38` - Get single nexset by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_samples(self, set_id: int, count: int = 10, include_metadata: bool = False, live: bool = False) -> List[nexla_sdk.models.nexsets.responses.NexsetSample]` - - Source: `nexla_sdk/resources/nexsets.py:113` + - Source: `nexla_sdk/resources/nexsets.py:118` - Get sample records from a nexset. - `list(self, **kwargs) -> List[nexla_sdk.models.nexsets.responses.Nexset]` - - Source: `nexla_sdk/resources/nexsets.py:15` + - Source: `nexla_sdk/resources/nexsets.py:20` - List nexsets with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, set_id: int) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:101` + - Source: `nexla_sdk/resources/nexsets.py:106` - Pause nexset. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, set_id: int, data: nexla_sdk.models.nexsets.requests.NexsetUpdate) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:64` + - Source: `nexla_sdk/resources/nexsets.py:69` - Update nexset. ### NotFoundError -Defined in `nexla_sdk/exceptions.py:85` +Defined in `nexla_sdk/exceptions.py:88` Raised when a resource is not found. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### NotificationChannel -Defined in `nexla_sdk/models/enums.py:53` +Defined in `nexla_sdk/models/enums.py:57` Notification delivery channels. @@ -1138,7 +1164,7 @@ Members: ### NotificationLevel -Defined in `nexla_sdk/models/enums.py:43` +Defined in `nexla_sdk/models/enums.py:46` Notification levels. @@ -1153,166 +1179,166 @@ Members: ### NotificationsResource -Defined in `nexla_sdk/resources/notifications.py:13` +Defined in `nexla_sdk/resources/notifications.py:19` Resource for managing notifications. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `create_channel_setting(self, data: nexla_sdk.models.notifications.requests.NotificationChannelSettingCreate) -> nexla_sdk.models.notifications.responses.NotificationChannelSetting` - - Source: `nexla_sdk/resources/notifications.py:190` + - Source: `nexla_sdk/resources/notifications.py:195` - Create notification channel setting. - `create_setting(self, data: nexla_sdk.models.notifications.requests.NotificationSettingCreate) -> nexla_sdk.models.notifications.responses.NotificationSetting` - - Source: `nexla_sdk/resources/notifications.py:276` + - Source: `nexla_sdk/resources/notifications.py:285` - Create notification setting. - `delete(self, notification_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:34` + - Source: `nexla_sdk/resources/notifications.py:40` - Delete notification. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_all(self) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:82` + - Source: `nexla_sdk/resources/notifications.py:90` - Delete all notifications. - `delete_channel_setting(self, setting_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:235` + - Source: `nexla_sdk/resources/notifications.py:242` - Delete notification channel setting. - `delete_setting(self, setting_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:321` + - Source: `nexla_sdk/resources/notifications.py:330` - Delete notification setting. - `get(self, notification_id: int, expand: bool = False) -> nexla_sdk.models.notifications.responses.Notification` - - Source: `nexla_sdk/resources/notifications.py:21` + - Source: `nexla_sdk/resources/notifications.py:27` - Get single notification by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_channel_setting(self, setting_id: int) -> nexla_sdk.models.notifications.responses.NotificationChannelSetting` - - Source: `nexla_sdk/resources/notifications.py:204` + - Source: `nexla_sdk/resources/notifications.py:211` - Get notification channel setting. - `get_count(self, read: Optional[int] = None) -> nexla_sdk.models.notifications.responses.NotificationCount` - - Source: `nexla_sdk/resources/notifications.py:92` + - Source: `nexla_sdk/resources/notifications.py:100` - Get notification count. - `get_resource_settings(self, resource_type: str, resource_id: int, expand: bool = False, filter_overridden: bool = False, notification_type_id: Optional[int] = None) -> List[nexla_sdk.models.notifications.responses.NotificationSetting]` - - Source: `nexla_sdk/resources/notifications.py:352` + - Source: `nexla_sdk/resources/notifications.py:361` - Get notification settings for a resource. - `get_setting(self, setting_id: int) -> nexla_sdk.models.notifications.responses.NotificationSetting` - - Source: `nexla_sdk/resources/notifications.py:290` + - Source: `nexla_sdk/resources/notifications.py:299` - Get notification setting. - `get_settings_by_type(self, notification_type_id: int, expand: bool = False) -> List[nexla_sdk.models.notifications.responses.NotificationSetting]` - - Source: `nexla_sdk/resources/notifications.py:334` + - Source: `nexla_sdk/resources/notifications.py:343` - Get notification settings for a type. - `get_type(self, event_type: str, resource_type: str) -> nexla_sdk.models.notifications.responses.NotificationType` - - Source: `nexla_sdk/resources/notifications.py:159` + - Source: `nexla_sdk/resources/notifications.py:167` - Get specific notification type. - `get_types(self, status: Optional[str] = None) -> List[nexla_sdk.models.notifications.responses.NotificationType]` - - Source: `nexla_sdk/resources/notifications.py:144` + - Source: `nexla_sdk/resources/notifications.py:152` - Get all notification types. - `list(self, read: Optional[int] = None, level: Optional[str] = None, from_timestamp: Optional[int] = None, to_timestamp: Optional[int] = None, **kwargs) -> List[nexla_sdk.models.notifications.responses.Notification]` - - Source: `nexla_sdk/resources/notifications.py:46` + - Source: `nexla_sdk/resources/notifications.py:52` - List notifications with optional filters. - `list_channel_settings(self) -> List[nexla_sdk.models.notifications.responses.NotificationChannelSetting]` - - Source: `nexla_sdk/resources/notifications.py:179` + - Source: `nexla_sdk/resources/notifications.py:184` - List notification channel settings. - `list_settings(self, event_type: Optional[str] = None, resource_type: Optional[str] = None, status: Optional[str] = None) -> List[nexla_sdk.models.notifications.responses.NotificationSetting]` - - Source: `nexla_sdk/resources/notifications.py:249` + - Source: `nexla_sdk/resources/notifications.py:256` - List notification settings. - `mark_read(self, notification_ids: Union[List[int], str]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:107` + - Source: `nexla_sdk/resources/notifications.py:115` - Mark notifications as read. - `mark_unread(self, notification_ids: Union[List[int], str]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:125` + - Source: `nexla_sdk/resources/notifications.py:133` - Mark notifications as unread. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. - `update_channel_setting(self, setting_id: int, data: nexla_sdk.models.notifications.requests.NotificationChannelSettingUpdate) -> nexla_sdk.models.notifications.responses.NotificationChannelSetting` - - Source: `nexla_sdk/resources/notifications.py:218` + - Source: `nexla_sdk/resources/notifications.py:225` - Update notification channel setting. - `update_setting(self, setting_id: int, data: nexla_sdk.models.notifications.requests.NotificationSettingUpdate) -> nexla_sdk.models.notifications.responses.NotificationSetting` - - Source: `nexla_sdk/resources/notifications.py:304` + - Source: `nexla_sdk/resources/notifications.py:313` - Update notification setting. ### OrgAuthConfigsResource -Defined in `nexla_sdk/resources/org_auth_configs.py:7` +Defined in `nexla_sdk/resources/org_auth_configs.py:8` Resource for organization authentication configurations (/api_auth_configs). Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, payload: nexla_sdk.models.org_auth_configs.requests.AuthConfigPayload) -> nexla_sdk.models.org_auth_configs.responses.AuthConfig` - - Source: `nexla_sdk/resources/org_auth_configs.py:30` + - Source: `nexla_sdk/resources/org_auth_configs.py:31` - Create a new authentication configuration. - `delete(self, auth_config_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/org_auth_configs.py:42` + - Source: `nexla_sdk/resources/org_auth_configs.py:45` - Delete an authentication configuration by ID. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, auth_config_id: int) -> nexla_sdk.models.org_auth_configs.responses.AuthConfig` - - Source: `nexla_sdk/resources/org_auth_configs.py:25` + - Source: `nexla_sdk/resources/org_auth_configs.py:26` - Get a specific authentication configuration by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self) -> List[nexla_sdk.models.org_auth_configs.responses.AuthConfig]` - - Source: `nexla_sdk/resources/org_auth_configs.py:15` + - Source: `nexla_sdk/resources/org_auth_configs.py:16` - List authentication configurations for the current organization. - `list_all(self) -> List[nexla_sdk.models.org_auth_configs.responses.AuthConfig]` - - Source: `nexla_sdk/resources/org_auth_configs.py:20` + - Source: `nexla_sdk/resources/org_auth_configs.py:21` - List all authentication configurations (admin only). - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, auth_config_id: int, payload: nexla_sdk.models.org_auth_configs.requests.AuthConfigPayload) -> nexla_sdk.models.org_auth_configs.responses.AuthConfig` - - Source: `nexla_sdk/resources/org_auth_configs.py:36` + - Source: `nexla_sdk/resources/org_auth_configs.py:37` - Update an existing authentication configuration. ### OrgMembershipStatus -Defined in `nexla_sdk/models/enums.py:79` +Defined in `nexla_sdk/models/enums.py:86` Organization membership status. @@ -1323,7 +1349,7 @@ Members: ### Organization -Defined in `nexla_sdk/models/common.py:14` +Defined in `nexla_sdk/models/common.py:16` Organization details. @@ -1331,125 +1357,128 @@ Fields: - `id`: `int` - `name`: `str` -- `email_domain`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `client_identifier`: `typing.Optional[str]` -- `org_webhook_host`: `typing.Optional[str]` -- `cluster_id`: `typing.Optional[int]` -- `new_cluster_id`: `typing.Optional[int]` -- `cluster_status`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `self_signup`: `typing.Optional[bool]` -- `features_enabled`: `typing.Optional[typing.List[str]]` -- `org_tier`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `email_domain`: `Optional` +- `email`: `Optional` +- `client_identifier`: `Optional` +- `org_webhook_host`: `Optional` +- `cluster_id`: `Optional` +- `new_cluster_id`: `Optional` +- `cluster_status`: `Optional` +- `status`: `Optional` +- `self_signup`: `Optional` +- `features_enabled`: `Optional` +- `org_tier`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrganizationsResource -Defined in `nexla_sdk/resources/organizations.py:15` +Defined in `nexla_sdk/resources/organizations.py:22` Resource for managing organizations. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `activate_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberActivateDeactivateRequest) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:164` + - Source: `nexla_sdk/resources/organizations.py:173` - Activate members in an organization. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `add_custodians(self, org_id: int, payload: nexla_sdk.models.organizations.custodians.OrgCustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/organizations.py:291` + - Source: `nexla_sdk/resources/organizations.py:365` - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.organizations.requests.OrganizationCreate) -> nexla_sdk.models.organizations.responses.Organization` - - Source: `nexla_sdk/resources/organizations.py:54` + - Source: `nexla_sdk/resources/organizations.py:61` - Create a new organization. Note: This is an admin-only operation. - `deactivate_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberActivateDeactivateRequest) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:149` + - Source: `nexla_sdk/resources/organizations.py:156` - Deactivate members in an organization. - `delete(self, org_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:79` + - Source: `nexla_sdk/resources/organizations.py:86` - Delete organization. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberDelete) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:135` + - Source: `nexla_sdk/resources/organizations.py:142` - Remove members from organization. - `get(self, org_id: int, expand: bool = False) -> nexla_sdk.models.organizations.responses.Organization` - - Source: `nexla_sdk/resources/organizations.py:41` + - Source: `nexla_sdk/resources/organizations.py:48` - Get single organization by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. - `get_account_summary(self, org_id: int) -> nexla_sdk.models.organizations.responses.AccountSummary` - - Source: `nexla_sdk/resources/organizations.py:179` + - Source: `nexla_sdk/resources/organizations.py:190` - Get account summary statistics for an organization. -- `get_audit_log(self, org_id: int, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/organizations.py:212` +- `get_audit_log(self, org_id: int, from_date: str = None, to_date: str = None, event_filter: str = None, change_filter: str = None, page: int = None, per_page: int = None) -> List[nexla_sdk.models.common.LogEntry]` + - Source: `nexla_sdk/resources/organizations.py:227` - Get audit log for an organization. - `get_auth_settings(self, org_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/organizations.py:243` + - Source: `nexla_sdk/resources/organizations.py:316` - Get authentication settings for organization. - `get_current_account_summary(self) -> nexla_sdk.models.organizations.responses.AccountSummary` - - Source: `nexla_sdk/resources/organizations.py:193` + - Source: `nexla_sdk/resources/organizations.py:204` - Get account summary for the current organization based on auth token. - `get_custodians(self, org_id: int) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/organizations.py:276` + - Source: `nexla_sdk/resources/organizations.py:348` +- `get_flow_status_metrics(self, org_id: int, from_date: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/organizations.py:269` + - Get flow status metrics for an organization. - `get_members(self, org_id: int) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:91` + - Source: `nexla_sdk/resources/organizations.py:98` - Get all members in organization. -- `get_org_flow_account_metrics(self, org_id: int, from_date: str, to_date: str = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:204` +- `get_org_flow_account_metrics(self, org_id: int, from_date: str, to_date: str = None, aggregate: str = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/organizations.py:215` - Get total account metrics for an organization (flows). -- `get_resource_audit_log(self, org_id: int, resource_type: str, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/organizations.py:227` +- `get_resource_audit_log(self, org_id: int, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], **params) -> List[nexla_sdk.models.common.LogEntry]` + - Source: `nexla_sdk/resources/organizations.py:294` - Get audit log for a specific resource type within an organization. - `list(self, **kwargs) -> List[nexla_sdk.models.organizations.responses.Organization]` - - Source: `nexla_sdk/resources/organizations.py:23` + - Source: `nexla_sdk/resources/organizations.py:30` - List organizations with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `remove_custodians(self, org_id: int, payload: nexla_sdk.models.organizations.custodians.OrgCustodiansPayload) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:299` + - Source: `nexla_sdk/resources/organizations.py:375` - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `replace_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberList) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:120` + - Source: `nexla_sdk/resources/organizations.py:127` - Replace all members in organization. - `update(self, org_id: int, data: nexla_sdk.models.organizations.requests.OrganizationUpdate) -> nexla_sdk.models.organizations.responses.Organization` - - Source: `nexla_sdk/resources/organizations.py:66` + - Source: `nexla_sdk/resources/organizations.py:73` - Update organization. - `update_auth_setting(self, org_id: int, auth_setting_id: int, enabled: bool) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:256` + - Source: `nexla_sdk/resources/organizations.py:329` - Enable/disable authentication configuration. - `update_custodians(self, org_id: int, payload: nexla_sdk.models.organizations.custodians.OrgCustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/organizations.py:283` + - Source: `nexla_sdk/resources/organizations.py:355` - `update_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberList) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:105` + - Source: `nexla_sdk/resources/organizations.py:112` - Add or update members in organization. ### Owner -Defined in `nexla_sdk/models/common.py:6` +Defined in `nexla_sdk/models/common.py:7` User who owns a resource. @@ -1458,119 +1487,119 @@ Fields: - `id`: `int` - `full_name`: `str` - `email`: `str` -- `email_verified_at`: `typing.Optional[datetime.datetime]` +- `email_verified_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ProjectsResource -Defined in `nexla_sdk/resources/projects.py:8` +Defined in `nexla_sdk/resources/projects.py:13` Resource for managing projects. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `add_data_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:161` + - Source: `nexla_sdk/resources/projects.py:170` - Backward-compatible alias for adding flows to a project. - `add_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:108` + - Source: `nexla_sdk/resources/projects.py:113` - Add flows to project. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.projects.requests.ProjectCreate) -> nexla_sdk.models.projects.responses.Project` - - Source: `nexla_sdk/resources/projects.py:54` + - Source: `nexla_sdk/resources/projects.py:59` - Create new project. - `delete(self, project_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/projects.py:82` + - Source: `nexla_sdk/resources/projects.py:87` - Delete project. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, project_id: int, expand: bool = False) -> nexla_sdk.models.projects.responses.Project` - - Source: `nexla_sdk/resources/projects.py:38` + - Source: `nexla_sdk/resources/projects.py:43` - Get single project by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_flows(self, project_id: int) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/projects.py:94` + - Source: `nexla_sdk/resources/projects.py:99` - Get flows in project. - `list(self, expand: bool = False, **kwargs) -> List[nexla_sdk.models.projects.responses.Project]` - - Source: `nexla_sdk/resources/projects.py:16` + - Source: `nexla_sdk/resources/projects.py:21` - List projects with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `remove_data_flows(self, project_id: int, flows: Optional[nexla_sdk.models.projects.requests.ProjectFlowList] = None) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:177` + - Source: `nexla_sdk/resources/projects.py:190` - Backward-compatible alias for removing flows from a project. - `remove_flows(self, project_id: int, flows: Optional[nexla_sdk.models.projects.requests.ProjectFlowList] = None) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:142` + - Source: `nexla_sdk/resources/projects.py:151` - Remove flows from project. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `replace_data_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:169` + - Source: `nexla_sdk/resources/projects.py:180` - Backward-compatible alias for replacing all flows in a project. - `replace_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:125` + - Source: `nexla_sdk/resources/projects.py:132` - Replace all flows in project. - `search_flows(self, project_id: int, filters: List[Dict[str, Any]]) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/projects.py:187` + - Source: `nexla_sdk/resources/projects.py:200` - Search flows in a project using filter criteria. - `update(self, project_id: int, data: nexla_sdk.models.projects.requests.ProjectUpdate) -> nexla_sdk.models.projects.responses.Project` - - Source: `nexla_sdk/resources/projects.py:69` + - Source: `nexla_sdk/resources/projects.py:74` - Update project. ### RateLimitError -Defined in `nexla_sdk/exceptions.py:95` +Defined in `nexla_sdk/exceptions.py:100` Raised when rate limit is exceeded. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### ResourceConflictError -Defined in `nexla_sdk/exceptions.py:108` +Defined in `nexla_sdk/exceptions.py:114` Raised when resource conflicts occur. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### ResourceStatus -Defined in `nexla_sdk/models/enums.py:12` +Defined in `nexla_sdk/models/enums.py:13` Common resource status values. @@ -1586,7 +1615,7 @@ Members: ### ResourceType -Defined in `nexla_sdk/models/enums.py:23` +Defined in `nexla_sdk/models/enums.py:25` Resource types in Nexla. @@ -1611,317 +1640,317 @@ Members: ### RuntimesResource -Defined in `nexla_sdk/resources/runtimes.py:7` +Defined in `nexla_sdk/resources/runtimes.py:8` Resource for managing custom runtimes. Methods: - `activate(self, runtime_id: int) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:44` + - Source: `nexla_sdk/resources/runtimes.py:45` - Activate a custom runtime. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.runtimes.requests.RuntimeCreate) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:20` + - Source: `nexla_sdk/resources/runtimes.py:21` - Create a new custom runtime. - `delete(self, runtime_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/runtimes.py:39` + - Source: `nexla_sdk/resources/runtimes.py:40` - Delete a custom runtime by ID. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, runtime_id: int) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:26` + - Source: `nexla_sdk/resources/runtimes.py:27` - Get a custom runtime by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self) -> List[nexla_sdk.models.runtimes.responses.Runtime]` - - Source: `nexla_sdk/resources/runtimes.py:15` + - Source: `nexla_sdk/resources/runtimes.py:16` - List custom runtimes. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, runtime_id: int) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:50` + - Source: `nexla_sdk/resources/runtimes.py:51` - Pause a custom runtime. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, runtime_id: int, data: nexla_sdk.models.runtimes.requests.RuntimeUpdate) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:32` + - Source: `nexla_sdk/resources/runtimes.py:33` - Update a custom runtime by ID. ### SelfSignupResource -Defined in `nexla_sdk/resources/self_signup.py:6` +Defined in `nexla_sdk/resources/self_signup.py:7` Resource for self sign-up and admin endpoints. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `add_blocked_domain(self, domain: str) -> nexla_sdk.models.self_signup.responses.BlockedDomain` - - Source: `nexla_sdk/resources/self_signup.py:34` + - Source: `nexla_sdk/resources/self_signup.py:39` - `approve_request(self, request_id: str) -> nexla_sdk.models.self_signup.responses.SelfSignupRequest` - - Source: `nexla_sdk/resources/self_signup.py:26` + - Source: `nexla_sdk/resources/self_signup.py:29` - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_blocked_domain(self, domain_id: str) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/self_signup.py:42` + - Source: `nexla_sdk/resources/self_signup.py:51` - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `list_blocked_domains(self) -> List[nexla_sdk.models.self_signup.responses.BlockedDomain]` - - Source: `nexla_sdk/resources/self_signup.py:30` + - Source: `nexla_sdk/resources/self_signup.py:35` - `list_requests(self) -> List[nexla_sdk.models.self_signup.responses.SelfSignupRequest]` - - Source: `nexla_sdk/resources/self_signup.py:22` + - Source: `nexla_sdk/resources/self_signup.py:25` - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `signup(self, payload: Dict[str, Any]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/self_signup.py:15` + - Source: `nexla_sdk/resources/self_signup.py:16` - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. - `update_blocked_domain(self, domain_id: str, domain: str) -> nexla_sdk.models.self_signup.responses.BlockedDomain` - - Source: `nexla_sdk/resources/self_signup.py:38` + - Source: `nexla_sdk/resources/self_signup.py:45` - `verify_email(self, token: str) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/self_signup.py:18` + - Source: `nexla_sdk/resources/self_signup.py:19` ### ServerError -Defined in `nexla_sdk/exceptions.py:103` +Defined in `nexla_sdk/exceptions.py:108` Raised when server returns 5xx error. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### SourcesResource -Defined in `nexla_sdk/resources/sources.py:7` +Defined in `nexla_sdk/resources/sources.py:12` Resource for managing data sources. Methods: - `activate(self, source_id: int) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:93` + - Source: `nexla_sdk/resources/sources.py:98` - Activate source. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, source_id: int, options: Optional[nexla_sdk.models.sources.requests.SourceCopyOptions] = None) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:117` + - Source: `nexla_sdk/resources/sources.py:122` - Copy a source. - `create(self, data: nexla_sdk.models.sources.requests.SourceCreate) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:53` + - Source: `nexla_sdk/resources/sources.py:58` - Create new source. - `delete(self, source_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/sources.py:81` + - Source: `nexla_sdk/resources/sources.py:86` - Delete source. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, source_id: int, expand: bool = False) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:37` + - Source: `nexla_sdk/resources/sources.py:42` - Get single source by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, **kwargs) -> List[nexla_sdk.models.sources.responses.Source]` - - Source: `nexla_sdk/resources/sources.py:15` + - Source: `nexla_sdk/resources/sources.py:20` - List sources with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, source_id: int) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:105` + - Source: `nexla_sdk/resources/sources.py:110` - Pause source. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, source_id: int, data: nexla_sdk.models.sources.requests.SourceUpdate) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:68` + - Source: `nexla_sdk/resources/sources.py:73` - Update source. ### TeamsResource -Defined in `nexla_sdk/resources/teams.py:7` +Defined in `nexla_sdk/resources/teams.py:8` Resource for managing teams. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `add_members(self, team_id: int, members: nexla_sdk.models.teams.requests.TeamMemberList) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:103` + - Source: `nexla_sdk/resources/teams.py:104` - Add members to team. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.teams.requests.TeamCreate) -> nexla_sdk.models.teams.responses.Team` - - Source: `nexla_sdk/resources/teams.py:49` + - Source: `nexla_sdk/resources/teams.py:50` - Create new team. - `delete(self, team_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/teams.py:77` + - Source: `nexla_sdk/resources/teams.py:78` - Delete team. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, team_id: int, expand: bool = False) -> nexla_sdk.models.teams.responses.Team` - - Source: `nexla_sdk/resources/teams.py:33` + - Source: `nexla_sdk/resources/teams.py:34` - Get single team by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_members(self, team_id: int) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:89` + - Source: `nexla_sdk/resources/teams.py:90` - Get team members. - `list(self, **kwargs) -> List[nexla_sdk.models.teams.responses.Team]` - - Source: `nexla_sdk/resources/teams.py:15` + - Source: `nexla_sdk/resources/teams.py:16` - List teams with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `remove_members(self, team_id: int, members: Optional[nexla_sdk.models.teams.requests.TeamMemberList] = None) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:133` + - Source: `nexla_sdk/resources/teams.py:136` - Remove members from team. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `replace_members(self, team_id: int, members: nexla_sdk.models.teams.requests.TeamMemberList) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:118` + - Source: `nexla_sdk/resources/teams.py:119` - Replace all team members. - `update(self, team_id: int, data: nexla_sdk.models.teams.requests.TeamUpdate) -> nexla_sdk.models.teams.responses.Team` - - Source: `nexla_sdk/resources/teams.py:64` + - Source: `nexla_sdk/resources/teams.py:65` - Update team. ### TransformError -Defined in `nexla_sdk/exceptions.py:139` +Defined in `nexla_sdk/exceptions.py:152` Raised when transform operations fail. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. ### TransformsResource -Defined in `nexla_sdk/resources/transforms.py:7` +Defined in `nexla_sdk/resources/transforms.py:8` Resource for reusable record transforms (aliased to code containers). Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, transform_id: int) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:49` + - Source: `nexla_sdk/resources/transforms.py:50` - Copy a transform by ID. - `create(self, data: nexla_sdk.models.transforms.requests.TransformCreate) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:37` + - Source: `nexla_sdk/resources/transforms.py:38` - Create a new transform. - `delete(self, transform_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/transforms.py:45` + - Source: `nexla_sdk/resources/transforms.py:46` - Delete a transform by ID. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, transform_id: int, expand: bool = False) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:33` + - Source: `nexla_sdk/resources/transforms.py:34` - Get a transform by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, **kwargs) -> List[nexla_sdk.models.transforms.responses.Transform]` - - Source: `nexla_sdk/resources/transforms.py:15` + - Source: `nexla_sdk/resources/transforms.py:16` - List transforms with optional filters. - `list_public(self) -> List[nexla_sdk.models.transforms.responses.Transform]` - - Source: `nexla_sdk/resources/transforms.py:53` + - Source: `nexla_sdk/resources/transforms.py:54` - List publicly shared transforms. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, transform_id: int, data: nexla_sdk.models.transforms.requests.TransformUpdate) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:41` + - Source: `nexla_sdk/resources/transforms.py:42` - Update an existing transform. ### UserStatus -Defined in `nexla_sdk/models/enums.py:70` +Defined in `nexla_sdk/models/enums.py:76` User account status. @@ -1935,7 +1964,7 @@ Members: ### UserTier -Defined in `nexla_sdk/models/enums.py:62` +Defined in `nexla_sdk/models/enums.py:67` User account tiers. @@ -1948,97 +1977,100 @@ Members: ### UsersResource -Defined in `nexla_sdk/resources/users.py:8` +Defined in `nexla_sdk/resources/users.py:9` Resource for managing users. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.users.requests.UserCreate) -> nexla_sdk.models.users.responses.User` - - Source: `nexla_sdk/resources/users.py:62` + - Source: `nexla_sdk/resources/users.py:65` - Create new user. - `create_quarantine_settings(self, user_id: int, data_credentials_id: int, config: Dict[str, Any]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:131` + - Source: `nexla_sdk/resources/users.py:134` - Create quarantine data export settings. - `delete(self, user_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:90` + - Source: `nexla_sdk/resources/users.py:93` - Delete user. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_quarantine_settings(self, user_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:169` + - Source: `nexla_sdk/resources/users.py:168` - Delete quarantine data export settings. - `get(self, user_id: int, expand: bool = False) -> nexla_sdk.models.users.responses.User` - - Source: `nexla_sdk/resources/users.py:40` + - Source: `nexla_sdk/resources/users.py:43` - Get user by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_account_metrics(self, user_id: int, from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:224` +- `get_account_metrics(self, user_id: int, from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None, aggregate: Optional[str] = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/users.py:258` - Get total account metrics for user. -- `get_audit_log(self, user_id: int, **params) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/users.py:182` +- `get_audit_log(self, user_id: int, from_date: str = None, to_date: str = None, event_filter: str = None, change_filter: str = None, page: int = None, per_page: int = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/users.py:181` - Get audit log for a user. - `get_current(self) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:113` + - Source: `nexla_sdk/resources/users.py:116` - Get info on current user (includes org memberships and current org info). -- `get_daily_metrics(self, user_id: int, resource_type: nexla_sdk.models.metrics.enums.UserMetricResourceType, from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:270` +- `get_daily_metrics(self, user_id: int, resource_type: Union[nexla_sdk.models.metrics.enums.UserMetricResourceType, str], from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/users.py:339` - Get daily data processing metrics for a user. - `get_dashboard_metrics(self, user_id: int, access_role: Optional[str] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:250` + - Source: `nexla_sdk/resources/users.py:319` - Get 24 hour flow stats for user. +- `get_flow_status_metrics(self, user_id: int, from_date: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/users.py:290` + - Get flow status metrics for a user. - `get_quarantine_settings(self, user_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:118` + - Source: `nexla_sdk/resources/users.py:121` - Get quarantine data export settings for user. - `get_settings(self) -> List[nexla_sdk.models.users.responses.UserSettings]` - - Source: `nexla_sdk/resources/users.py:102` + - Source: `nexla_sdk/resources/users.py:105` - Get current user's settings. - `get_transferable_resources(self, user_id: int, org_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:190` + - Source: `nexla_sdk/resources/users.py:225` - Get a list of resources owned by a user that can be transferred. - `list(self, expand: bool = False, **kwargs) -> List[nexla_sdk.models.users.responses.User]` - - Source: `nexla_sdk/resources/users.py:16` + - Source: `nexla_sdk/resources/users.py:17` - List users with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `transfer_resources(self, user_id: int, org_id: int, delegate_owner_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:205` + - Source: `nexla_sdk/resources/users.py:240` - Transfer a user's resources to another user within an organization. - `update(self, user_id: int, data: nexla_sdk.models.users.requests.UserUpdate) -> nexla_sdk.models.users.responses.User` - - Source: `nexla_sdk/resources/users.py:77` + - Source: `nexla_sdk/resources/users.py:80` - Update user. - `update_quarantine_settings(self, user_id: int, data: Dict[str, Any]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:153` + - Source: `nexla_sdk/resources/users.py:152` - Update quarantine data export settings. ### ValidationError -Defined in `nexla_sdk/exceptions.py:90` +Defined in `nexla_sdk/exceptions.py:94` Raised when request validation fails. Methods: - `get_error_summary(self) -> Dict[str, Any]` - - Source: `nexla_sdk/exceptions.py:54` + - Source: `nexla_sdk/exceptions.py:56` - Get structured error information. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.access.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.access.mdx index 6cb8c2b..40d6d7b 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.access.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.access.mdx @@ -24,99 +24,99 @@ Members: ### AccessorsRequest -Defined in `nexla_sdk/models/access/requests.py:38` +Defined in `nexla_sdk/models/access/requests.py:49` Request model for accessor operations. Fields: -- `accessors`: `typing.List[typing.Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]` — List of accessor requests +- `accessors`: `List` — List of accessor requests ### OrgAccessorRequest -Defined in `nexla_sdk/models/access/requests.py:25` +Defined in `nexla_sdk/models/access/requests.py:31` Request model for ORG type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the organization -- `client_identifier`: `typing.Optional[str]` — Client identifier for the organization -- `email_domain`: `typing.Optional[str]` — Email domain for the organization -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the organization +- `client_identifier`: `Optional` — Client identifier for the organization +- `email_domain`: `Optional` — Email domain for the organization +- `access_roles`: `List` — List of access roles ### OrgAccessorResponse -Defined in `nexla_sdk/models/access/responses.py:30` +Defined in `nexla_sdk/models/access/responses.py:36` Response model for ORG type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the organization -- `client_identifier`: `typing.Optional[str]` — Client identifier for the organization -- `email_domain`: `typing.Optional[str]` — Email domain for the organization -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles -- `created_at`: `typing.Optional[datetime.datetime]` — Creation timestamp -- `updated_at`: `typing.Optional[datetime.datetime]` — Last update timestamp +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the organization +- `client_identifier`: `Optional` — Client identifier for the organization +- `email_domain`: `Optional` — Email domain for the organization +- `access_roles`: `List` — List of access roles +- `created_at`: `Optional` — Creation timestamp +- `updated_at`: `Optional` — Last update timestamp ### TeamAccessorRequest -Defined in `nexla_sdk/models/access/requests.py:17` +Defined in `nexla_sdk/models/access/requests.py:22` Request model for TEAM type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the team -- `name`: `typing.Optional[str]` — Name of the team -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the team +- `name`: `Optional` — Name of the team +- `access_roles`: `List` — List of access roles ### TeamAccessorResponse -Defined in `nexla_sdk/models/access/responses.py:20` +Defined in `nexla_sdk/models/access/responses.py:25` Response model for TEAM type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the team -- `name`: `typing.Optional[str]` — Name of the team -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles -- `created_at`: `typing.Optional[datetime.datetime]` — Creation timestamp -- `updated_at`: `typing.Optional[datetime.datetime]` — Last update timestamp +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the team +- `name`: `Optional` — Name of the team +- `access_roles`: `List` — List of access roles +- `created_at`: `Optional` — Creation timestamp +- `updated_at`: `Optional` — Last update timestamp ### UserAccessorRequest -Defined in `nexla_sdk/models/access/requests.py:8` +Defined in `nexla_sdk/models/access/requests.py:10` Request model for USER type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the user -- `email`: `typing.Optional[str]` — Email of the user -- `org_id`: `typing.Optional[int]` — Organization ID for cross-org access -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the user +- `email`: `Optional` — Email of the user +- `org_id`: `Optional` — Organization ID for cross-org access +- `access_roles`: `List` — List of access roles ### UserAccessorResponse -Defined in `nexla_sdk/models/access/responses.py:9` +Defined in `nexla_sdk/models/access/responses.py:11` Response model for USER type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the user -- `email`: `typing.Optional[str]` — Email of the user -- `org_id`: `typing.Optional[int]` — Organization ID for cross-org access -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles -- `created_at`: `typing.Optional[datetime.datetime]` — Creation timestamp -- `updated_at`: `typing.Optional[datetime.datetime]` — Last update timestamp +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the user +- `email`: `Optional` — Email of the user +- `org_id`: `Optional` — Organization ID for cross-org access +- `access_roles`: `List` — List of access roles +- `created_at`: `Optional` — Creation timestamp +- `updated_at`: `Optional` — Last update timestamp diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.access.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.access.requests.mdx index 2814d88..9ce4d9e 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.access.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.access.requests.mdx @@ -10,52 +10,52 @@ keywords: [Nexla, SDK, Python, API] ### AccessorsRequest -Defined in `nexla_sdk/models/access/requests.py:38` +Defined in `nexla_sdk/models/access/requests.py:49` Request model for accessor operations. Fields: -- `accessors`: `typing.List[typing.Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]` — List of accessor requests +- `accessors`: `List` — List of accessor requests ### OrgAccessorRequest -Defined in `nexla_sdk/models/access/requests.py:25` +Defined in `nexla_sdk/models/access/requests.py:31` Request model for ORG type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the organization -- `client_identifier`: `typing.Optional[str]` — Client identifier for the organization -- `email_domain`: `typing.Optional[str]` — Email domain for the organization -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the organization +- `client_identifier`: `Optional` — Client identifier for the organization +- `email_domain`: `Optional` — Email domain for the organization +- `access_roles`: `List` — List of access roles ### TeamAccessorRequest -Defined in `nexla_sdk/models/access/requests.py:17` +Defined in `nexla_sdk/models/access/requests.py:22` Request model for TEAM type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the team -- `name`: `typing.Optional[str]` — Name of the team -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the team +- `name`: `Optional` — Name of the team +- `access_roles`: `List` — List of access roles ### UserAccessorRequest -Defined in `nexla_sdk/models/access/requests.py:8` +Defined in `nexla_sdk/models/access/requests.py:10` Request model for USER type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the user -- `email`: `typing.Optional[str]` — Email of the user -- `org_id`: `typing.Optional[int]` — Organization ID for cross-org access -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the user +- `email`: `Optional` — Email of the user +- `org_id`: `Optional` — Organization ID for cross-org access +- `access_roles`: `List` — List of access roles diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.access.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.access.responses.mdx index c51dbae..eb9553f 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.access.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.access.responses.mdx @@ -10,48 +10,48 @@ keywords: [Nexla, SDK, Python, API] ### OrgAccessorResponse -Defined in `nexla_sdk/models/access/responses.py:30` +Defined in `nexla_sdk/models/access/responses.py:36` Response model for ORG type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the organization -- `client_identifier`: `typing.Optional[str]` — Client identifier for the organization -- `email_domain`: `typing.Optional[str]` — Email domain for the organization -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles -- `created_at`: `typing.Optional[datetime.datetime]` — Creation timestamp -- `updated_at`: `typing.Optional[datetime.datetime]` — Last update timestamp +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the organization +- `client_identifier`: `Optional` — Client identifier for the organization +- `email_domain`: `Optional` — Email domain for the organization +- `access_roles`: `List` — List of access roles +- `created_at`: `Optional` — Creation timestamp +- `updated_at`: `Optional` — Last update timestamp ### TeamAccessorResponse -Defined in `nexla_sdk/models/access/responses.py:20` +Defined in `nexla_sdk/models/access/responses.py:25` Response model for TEAM type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the team -- `name`: `typing.Optional[str]` — Name of the team -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles -- `created_at`: `typing.Optional[datetime.datetime]` — Creation timestamp -- `updated_at`: `typing.Optional[datetime.datetime]` — Last update timestamp +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the team +- `name`: `Optional` — Name of the team +- `access_roles`: `List` — List of access roles +- `created_at`: `Optional` — Creation timestamp +- `updated_at`: `Optional` — Last update timestamp ### UserAccessorResponse -Defined in `nexla_sdk/models/access/responses.py:9` +Defined in `nexla_sdk/models/access/responses.py:11` Response model for USER type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the user -- `email`: `typing.Optional[str]` — Email of the user -- `org_id`: `typing.Optional[int]` — Organization ID for cross-org access -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles -- `created_at`: `typing.Optional[datetime.datetime]` — Creation timestamp -- `updated_at`: `typing.Optional[datetime.datetime]` — Last update timestamp +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the user +- `email`: `Optional` — Email of the user +- `org_id`: `Optional` — Organization ID for cross-org access +- `access_roles`: `List` — List of access roles +- `created_at`: `Optional` — Creation timestamp +- `updated_at`: `Optional` — Last update timestamp diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.mdx index 925e892..7e83ea5 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.mdx @@ -25,7 +25,7 @@ Features: Fields: - `approved`: `bool` -- `reason`: `typing.Optional[str]` +- `reason`: `Optional` ### ApprovalRequest @@ -44,12 +44,12 @@ Features: Fields: - `id`: `int` -- `status`: `typing.Optional[str]` -- `request_type`: `typing.Optional[str]` -- `requester_id`: `typing.Optional[int]` -- `resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `reason`: `typing.Optional[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `status`: `Optional` +- `request_type`: `Optional` +- `requester_id`: `Optional` +- `resource_type`: `Optional` +- `resource_id`: `Optional` +- `reason`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.requests.mdx index 7edd670..4441884 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.requests.mdx @@ -25,5 +25,5 @@ Features: Fields: - `approved`: `bool` -- `reason`: `typing.Optional[str]` +- `reason`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.responses.mdx index 5e88a19..1850c30 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.approval_requests.responses.mdx @@ -25,12 +25,12 @@ Features: Fields: - `id`: `int` -- `status`: `typing.Optional[str]` -- `request_type`: `typing.Optional[str]` -- `requester_id`: `typing.Optional[int]` -- `resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `reason`: `typing.Optional[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `status`: `Optional` +- `request_type`: `Optional` +- `requester_id`: `Optional` +- `resource_type`: `Optional` +- `resource_id`: `Optional` +- `reason`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.mdx index 930f6ec..c886ee4 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.mdx @@ -25,14 +25,14 @@ Features: Fields: - `id`: `int` -- `type`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `started_at`: `typing.Optional[datetime.datetime]` -- `finished_at`: `typing.Optional[datetime.datetime]` -- `result`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `error`: `typing.Optional[str]` +- `type`: `Optional` +- `status`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` +- `started_at`: `Optional` +- `finished_at`: `Optional` +- `result`: `Optional` +- `error`: `Optional` ### AsyncTaskCreate @@ -48,8 +48,8 @@ Fields: Fields: - `type`: `str` -- `priority`: `typing.Optional[int]` -- `arguments`: `typing.Dict[str, typing.Any]` +- `priority`: `Optional` +- `arguments`: `Dict` ### AsyncTaskResult @@ -67,8 +67,8 @@ Features: Fields: -- `task_id`: `typing.Optional[int]` -- `result`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `task_id`: `Optional` +- `result`: `Optional` ### DownloadLink @@ -87,5 +87,5 @@ Features: Fields: - `url`: `str` -- `expires_at`: `typing.Optional[datetime.datetime]` +- `expires_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.requests.mdx index 921283c..6a97f3e 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.requests.mdx @@ -22,6 +22,6 @@ Fields: Fields: - `type`: `str` -- `priority`: `typing.Optional[int]` -- `arguments`: `typing.Dict[str, typing.Any]` +- `priority`: `Optional` +- `arguments`: `Dict` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.responses.mdx index 9968aa3..6178422 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.async_tasks.responses.mdx @@ -25,14 +25,14 @@ Features: Fields: - `id`: `int` -- `type`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `started_at`: `typing.Optional[datetime.datetime]` -- `finished_at`: `typing.Optional[datetime.datetime]` -- `result`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `error`: `typing.Optional[str]` +- `type`: `Optional` +- `status`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` +- `started_at`: `Optional` +- `finished_at`: `Optional` +- `result`: `Optional` +- `error`: `Optional` ### AsyncTaskResult @@ -50,8 +50,8 @@ Features: Fields: -- `task_id`: `typing.Optional[int]` -- `result`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `task_id`: `Optional` +- `result`: `Optional` ### DownloadLink @@ -70,5 +70,5 @@ Features: Fields: - `url`: `str` -- `expires_at`: `typing.Optional[datetime.datetime]` +- `expires_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.mdx index a58daa9..d7cfe08 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.mdx @@ -26,26 +26,26 @@ Fields: - `id`: `int` - `name`: `str` -- `resource_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `access_roles`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `runtime_data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `description`: `typing.Optional[str]` -- `code_type`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `data_sets`: `typing.Optional[typing.List[int]]` -- `copied_from_id`: `typing.Optional[int]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `tags`: `typing.Optional[typing.List[str]]` +- `resource_type`: `Optional` +- `reusable`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `data_credentials`: `Optional` +- `runtime_data_credentials`: `Optional` +- `description`: `Optional` +- `code_type`: `Optional` +- `output_type`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `managed`: `Optional` +- `data_sets`: `Optional` +- `copied_from_id`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` +- `tags`: `Optional` ### AttributeTransformCreate @@ -69,11 +69,11 @@ Fields: - `code_type`: `str` - `code_encoding`: `str` - `code`: `str` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` ### AttributeTransformUpdate @@ -91,15 +91,15 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `code_type`: `typing.Optional[str]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `output_type`: `Optional` +- `reusable`: `Optional` +- `code_type`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.requests.mdx index f28e61f..e41908e 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.requests.mdx @@ -30,11 +30,11 @@ Fields: - `code_type`: `str` - `code_encoding`: `str` - `code`: `str` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` ### AttributeTransformUpdate @@ -52,15 +52,15 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `code_type`: `typing.Optional[str]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `output_type`: `Optional` +- `reusable`: `Optional` +- `code_type`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.responses.mdx index f8d321f..24e4c79 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.attribute_transforms.responses.mdx @@ -26,24 +26,24 @@ Fields: - `id`: `int` - `name`: `str` -- `resource_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `access_roles`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `runtime_data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `description`: `typing.Optional[str]` -- `code_type`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `data_sets`: `typing.Optional[typing.List[int]]` -- `copied_from_id`: `typing.Optional[int]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `tags`: `typing.Optional[typing.List[str]]` +- `resource_type`: `Optional` +- `reusable`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `data_credentials`: `Optional` +- `runtime_data_credentials`: `Optional` +- `description`: `Optional` +- `code_type`: `Optional` +- `output_type`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `managed`: `Optional` +- `data_sets`: `Optional` +- `copied_from_id`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` +- `tags`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.base.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.base.mdx index 23c8200..31074e1 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.base.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.base.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### BaseModel -Defined in `nexla_sdk/models/base.py:8` +Defined in `nexla_sdk/models/base.py:10` Base model class with Pydantic functionality and Nexla API compatibility. @@ -25,9 +25,9 @@ Features: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.mdx index 3caf173..64edc82 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.mdx @@ -18,32 +18,32 @@ Fields: - `id`: `int` - `name`: `str` -- `resource_type`: `typing.Optional[str]` -- `ai_function_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `public`: `typing.Optional[bool]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `access_roles`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `runtime_data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `description`: `typing.Optional[str]` -- `code_type`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.code_containers.responses.CodeOperation]]` -- `managed`: `typing.Optional[bool]` -- `data_sets`: `typing.Optional[typing.List[int]]` -- `copied_from_id`: `typing.Optional[int]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `tags`: `typing.Optional[typing.List[str]]` +- `resource_type`: `Optional` +- `ai_function_type`: `Optional` +- `reusable`: `Optional` +- `public`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `data_credentials`: `Optional` +- `runtime_data_credentials`: `Optional` +- `description`: `Optional` +- `code_type`: `Optional` +- `output_type`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `managed`: `Optional` +- `data_sets`: `Optional` +- `copied_from_id`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` +- `tags`: `Optional` ### CodeContainerCreate -Defined in `nexla_sdk/models/code_containers/requests.py:7` +Defined in `nexla_sdk/models/code_containers/requests.py:8` Base model class with Pydantic functionality and Nexla API compatibility. @@ -62,18 +62,18 @@ Fields: - `reusable`: `bool` - `code_type`: `str` - `code_encoding`: `str` -- `code`: `typing.List[nexla_sdk.models.code_containers.responses.CodeOperation]` -- `description`: `typing.Optional[str]` -- `public`: `typing.Optional[bool]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` -- `ai_function_type`: `typing.Optional[str]` +- `code`: `List` +- `description`: `Optional` +- `public`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` +- `ai_function_type`: `Optional` ### CodeContainerUpdate -Defined in `nexla_sdk/models/code_containers/requests.py:25` +Defined in `nexla_sdk/models/code_containers/requests.py:26` Base model class with Pydantic functionality and Nexla API compatibility. @@ -87,17 +87,17 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `code_type`: `typing.Optional[str]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.code_containers.responses.CodeOperation]]` -- `description`: `typing.Optional[str]` -- `public`: `typing.Optional[bool]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` -- `ai_function_type`: `typing.Optional[str]` +- `name`: `Optional` +- `output_type`: `Optional` +- `reusable`: `Optional` +- `code_type`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `description`: `Optional` +- `public`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` +- `ai_function_type`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.requests.mdx index e705215..8f8b499 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.requests.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### CodeContainerCreate -Defined in `nexla_sdk/models/code_containers/requests.py:7` +Defined in `nexla_sdk/models/code_containers/requests.py:8` Base model class with Pydantic functionality and Nexla API compatibility. @@ -29,18 +29,18 @@ Fields: - `reusable`: `bool` - `code_type`: `str` - `code_encoding`: `str` -- `code`: `typing.List[nexla_sdk.models.code_containers.responses.CodeOperation]` -- `description`: `typing.Optional[str]` -- `public`: `typing.Optional[bool]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` -- `ai_function_type`: `typing.Optional[str]` +- `code`: `List` +- `description`: `Optional` +- `public`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` +- `ai_function_type`: `Optional` ### CodeContainerUpdate -Defined in `nexla_sdk/models/code_containers/requests.py:25` +Defined in `nexla_sdk/models/code_containers/requests.py:26` Base model class with Pydantic functionality and Nexla API compatibility. @@ -54,17 +54,17 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `code_type`: `typing.Optional[str]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.code_containers.responses.CodeOperation]]` -- `description`: `typing.Optional[str]` -- `public`: `typing.Optional[bool]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` -- `ai_function_type`: `typing.Optional[str]` +- `name`: `Optional` +- `output_type`: `Optional` +- `reusable`: `Optional` +- `code_type`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `description`: `Optional` +- `public`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` +- `ai_function_type`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.responses.mdx index 0e63d3a..470ebe3 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.code_containers.responses.mdx @@ -18,28 +18,28 @@ Fields: - `id`: `int` - `name`: `str` -- `resource_type`: `typing.Optional[str]` -- `ai_function_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `public`: `typing.Optional[bool]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `access_roles`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `runtime_data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `description`: `typing.Optional[str]` -- `code_type`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.code_containers.responses.CodeOperation]]` -- `managed`: `typing.Optional[bool]` -- `data_sets`: `typing.Optional[typing.List[int]]` -- `copied_from_id`: `typing.Optional[int]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `tags`: `typing.Optional[typing.List[str]]` +- `resource_type`: `Optional` +- `ai_function_type`: `Optional` +- `reusable`: `Optional` +- `public`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `data_credentials`: `Optional` +- `runtime_data_credentials`: `Optional` +- `description`: `Optional` +- `code_type`: `Optional` +- `output_type`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `managed`: `Optional` +- `data_sets`: `Optional` +- `copied_from_id`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` +- `tags`: `Optional` ### CodeOperation @@ -57,6 +57,6 @@ Features: Fields: -- `operation`: `typing.Optional[str]` -- `spec`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `operation`: `Optional` +- `spec`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.common.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.common.mdx index 750d089..ff2dbd6 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.common.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.common.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Connector -Defined in `nexla_sdk/models/common.py:31` +Defined in `nexla_sdk/models/common.py:34` Connector information. @@ -25,7 +25,7 @@ Fields: ### FlowNode -Defined in `nexla_sdk/models/common.py:61` +Defined in `nexla_sdk/models/common.py:66` Flow node in a data pipeline. @@ -33,21 +33,21 @@ Fields: - `id`: `int` - `origin_node_id`: `int` -- `parent_node_id`: `typing.Optional[int]` -- `data_source_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` -- `data_sink_id`: `typing.Optional[int]` -- `status`: `typing.Optional[str]` -- `project_id`: `typing.Optional[int]` -- `flow_type`: `typing.Optional[str]` -- `ingestion_mode`: `typing.Optional[str]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `children`: `typing.Optional[typing.List[nexla_sdk.models.common.FlowNode]]` +- `parent_node_id`: `Optional` +- `data_source_id`: `Optional` +- `data_set_id`: `Optional` +- `data_sink_id`: `Optional` +- `status`: `Optional` +- `project_id`: `Optional` +- `flow_type`: `Optional` +- `ingestion_mode`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `children`: `Optional` ### LogEntry -Defined in `nexla_sdk/models/common.py:41` +Defined in `nexla_sdk/models/common.py:45` Audit log entry. @@ -57,22 +57,22 @@ Fields: - `item_type`: `str` - `item_id`: `int` - `event`: `str` -- `change_summary`: `typing.List[str]` -- `object_changes`: `typing.Dict[str, typing.List[typing.Any]]` +- `change_summary`: `List` +- `object_changes`: `Dict` - `request_ip`: `str` - `request_user_agent`: `str` - `request_url`: `str` -- `user`: `typing.Dict[str, typing.Any]` +- `user`: `Dict` - `org_id`: `int` - `owner_id`: `int` - `owner_email`: `str` - `created_at`: `datetime` -- `association_resource`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `impersonator_id`: `typing.Optional[str]` +- `association_resource`: `Optional` +- `impersonator_id`: `Optional` ### Organization -Defined in `nexla_sdk/models/common.py:14` +Defined in `nexla_sdk/models/common.py:16` Organization details. @@ -80,21 +80,21 @@ Fields: - `id`: `int` - `name`: `str` -- `email_domain`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `client_identifier`: `typing.Optional[str]` -- `org_webhook_host`: `typing.Optional[str]` -- `cluster_id`: `typing.Optional[int]` -- `new_cluster_id`: `typing.Optional[int]` -- `cluster_status`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `self_signup`: `typing.Optional[bool]` -- `features_enabled`: `typing.Optional[typing.List[str]]` -- `org_tier`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `email_domain`: `Optional` +- `email`: `Optional` +- `client_identifier`: `Optional` +- `org_webhook_host`: `Optional` +- `cluster_id`: `Optional` +- `new_cluster_id`: `Optional` +- `cluster_status`: `Optional` +- `status`: `Optional` +- `self_signup`: `Optional` +- `features_enabled`: `Optional` +- `org_tier`: `Optional` ### Owner -Defined in `nexla_sdk/models/common.py:6` +Defined in `nexla_sdk/models/common.py:7` User who owns a resource. @@ -103,5 +103,5 @@ Fields: - `id`: `int` - `full_name`: `str` - `email`: `str` -- `email_verified_at`: `typing.Optional[datetime.datetime]` +- `email_verified_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.enums.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.enums.mdx index 1aad410..8759a75 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.enums.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.enums.mdx @@ -71,7 +71,7 @@ Members: ### VerifiedStatus -Defined in `nexla_sdk/models/credentials/enums.py:60` +Defined in `nexla_sdk/models/credentials/enums.py:61` Credential verification status. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.mdx index 8c39e1c..1e5eff1 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Credential -Defined in `nexla_sdk/models/credentials/responses.py:8` +Defined in `nexla_sdk/models/credentials/responses.py:10` Data credential response model. @@ -19,29 +19,29 @@ Fields: - `id`: `int` - `name`: `str` - `credentials_type`: `str` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `verified_status`: `typing.Optional[str]` -- `connector`: `typing.Optional[nexla_sdk.models.common.Connector]` -- `description`: `typing.Optional[str]` -- `credentials_version`: `typing.Optional[str]` -- `api_keys`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `credentials_non_secure_data`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `verified_at`: `typing.Optional[datetime.datetime]` -- `copied_from_id`: `typing.Optional[int]` -- `template_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `vendor`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `auth_template`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `referenced_resource_ids`: `typing.Optional[typing.Dict[str, typing.List[int]]]` -- `tags`: `typing.Optional[typing.List[str]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `verified_status`: `Optional` +- `connector`: `Optional` +- `description`: `Optional` +- `credentials_version`: `Optional` +- `api_keys`: `Optional` +- `credentials_non_secure_data`: `Optional` +- `verified_at`: `Optional` +- `copied_from_id`: `Optional` +- `template_config`: `Optional` +- `vendor`: `Optional` +- `auth_template`: `Optional` +- `referenced_resource_ids`: `Optional` +- `tags`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` - `managed`: `bool` ### CredentialCreate -Defined in `nexla_sdk/models/credentials/requests.py:5` +Defined in `nexla_sdk/models/credentials/requests.py:6` Request model for creating a credential. @@ -49,11 +49,11 @@ Fields: - `name`: `str` - `credentials_type`: `str` -- `description`: `typing.Optional[str]` -- `auth_template_id`: `typing.Optional[int]` -- `vendor_id`: `typing.Optional[int]` -- `template_config`: `typing.Optional[typing.Dict]` -- `credentials`: `typing.Optional[typing.Dict]` +- `description`: `Optional` +- `auth_template_id`: `Optional` +- `vendor_id`: `Optional` +- `template_config`: `Optional` +- `credentials`: `Optional` ### CredentialType @@ -118,29 +118,29 @@ Members: ### CredentialUpdate -Defined in `nexla_sdk/models/credentials/requests.py:20` +Defined in `nexla_sdk/models/credentials/requests.py:22` Request model for updating a credential. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `name`: `Optional` +- `description`: `Optional` +- `credentials`: `Optional` ### ProbeSampleRequest -Defined in `nexla_sdk/models/credentials/requests.py:35` +Defined in `nexla_sdk/models/credentials/requests.py:39` Request for previewing connector content. Fields: -- `path`: `typing.Optional[str]` +- `path`: `Optional` ### ProbeSampleResponse -Defined in `nexla_sdk/models/credentials/responses.py:61` +Defined in `nexla_sdk/models/credentials/responses.py:65` Response from credential probe sample operation. @@ -149,24 +149,24 @@ Fields: - `status`: `str` - `message`: `str` - `connection_type`: `str` -- `output`: `typing.Dict[str, typing.Any]` +- `output`: `Dict` ### ProbeTreeRequest -Defined in `nexla_sdk/models/credentials/requests.py:27` +Defined in `nexla_sdk/models/credentials/requests.py:30` Request for probing storage structure. Fields: - `depth`: `int` -- `path`: `typing.Optional[str]` -- `database`: `typing.Optional[str]` -- `table`: `typing.Optional[str]` +- `path`: `Optional` +- `database`: `Optional` +- `table`: `Optional` ### ProbeTreeResponse -Defined in `nexla_sdk/models/credentials/responses.py:53` +Defined in `nexla_sdk/models/credentials/responses.py:56` Response from credential probe tree operation. @@ -175,11 +175,11 @@ Fields: - `status`: `str` - `message`: `str` - `connection_type`: `str` -- `object`: `typing.Dict[str, typing.Any]` +- `object`: `Dict` ### VerifiedStatus -Defined in `nexla_sdk/models/credentials/enums.py:60` +Defined in `nexla_sdk/models/credentials/enums.py:61` Credential verification status. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.requests.mdx index e758486..336b172 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.requests.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### CredentialCreate -Defined in `nexla_sdk/models/credentials/requests.py:5` +Defined in `nexla_sdk/models/credentials/requests.py:6` Request model for creating a credential. @@ -18,44 +18,44 @@ Fields: - `name`: `str` - `credentials_type`: `str` -- `description`: `typing.Optional[str]` -- `auth_template_id`: `typing.Optional[int]` -- `vendor_id`: `typing.Optional[int]` -- `template_config`: `typing.Optional[typing.Dict]` -- `credentials`: `typing.Optional[typing.Dict]` +- `description`: `Optional` +- `auth_template_id`: `Optional` +- `vendor_id`: `Optional` +- `template_config`: `Optional` +- `credentials`: `Optional` ### CredentialUpdate -Defined in `nexla_sdk/models/credentials/requests.py:20` +Defined in `nexla_sdk/models/credentials/requests.py:22` Request model for updating a credential. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `name`: `Optional` +- `description`: `Optional` +- `credentials`: `Optional` ### ProbeSampleRequest -Defined in `nexla_sdk/models/credentials/requests.py:35` +Defined in `nexla_sdk/models/credentials/requests.py:39` Request for previewing connector content. Fields: -- `path`: `typing.Optional[str]` +- `path`: `Optional` ### ProbeTreeRequest -Defined in `nexla_sdk/models/credentials/requests.py:27` +Defined in `nexla_sdk/models/credentials/requests.py:30` Request for probing storage structure. Fields: - `depth`: `int` -- `path`: `typing.Optional[str]` -- `database`: `typing.Optional[str]` -- `table`: `typing.Optional[str]` +- `path`: `Optional` +- `database`: `Optional` +- `table`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.responses.mdx index 7427496..4a0f8b1 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.credentials.responses.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Credential -Defined in `nexla_sdk/models/credentials/responses.py:8` +Defined in `nexla_sdk/models/credentials/responses.py:10` Data credential response model. @@ -19,29 +19,29 @@ Fields: - `id`: `int` - `name`: `str` - `credentials_type`: `str` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `verified_status`: `typing.Optional[str]` -- `connector`: `typing.Optional[nexla_sdk.models.common.Connector]` -- `description`: `typing.Optional[str]` -- `credentials_version`: `typing.Optional[str]` -- `api_keys`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `credentials_non_secure_data`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `verified_at`: `typing.Optional[datetime.datetime]` -- `copied_from_id`: `typing.Optional[int]` -- `template_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `vendor`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `auth_template`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `referenced_resource_ids`: `typing.Optional[typing.Dict[str, typing.List[int]]]` -- `tags`: `typing.Optional[typing.List[str]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `verified_status`: `Optional` +- `connector`: `Optional` +- `description`: `Optional` +- `credentials_version`: `Optional` +- `api_keys`: `Optional` +- `credentials_non_secure_data`: `Optional` +- `verified_at`: `Optional` +- `copied_from_id`: `Optional` +- `template_config`: `Optional` +- `vendor`: `Optional` +- `auth_template`: `Optional` +- `referenced_resource_ids`: `Optional` +- `tags`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` - `managed`: `bool` ### ProbeSampleResponse -Defined in `nexla_sdk/models/credentials/responses.py:61` +Defined in `nexla_sdk/models/credentials/responses.py:65` Response from credential probe sample operation. @@ -50,11 +50,11 @@ Fields: - `status`: `str` - `message`: `str` - `connection_type`: `str` -- `output`: `typing.Dict[str, typing.Any]` +- `output`: `Dict` ### ProbeTreeResponse -Defined in `nexla_sdk/models/credentials/responses.py:53` +Defined in `nexla_sdk/models/credentials/responses.py:56` Response from credential probe tree operation. @@ -63,5 +63,5 @@ Fields: - `status`: `str` - `message`: `str` - `connection_type`: `str` -- `object`: `typing.Dict[str, typing.Any]` +- `object`: `Dict` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.data_schemas.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.data_schemas.mdx index 4453258..4b77182 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.data_schemas.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.data_schemas.mdx @@ -25,5 +25,5 @@ Features: Fields: - `id`: `int` -- `name`: `typing.Optional[str]` +- `name`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.data_schemas.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.data_schemas.responses.mdx index 0c11035..1168a3c 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.data_schemas.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.data_schemas.responses.mdx @@ -25,5 +25,5 @@ Features: Fields: - `id`: `int` -- `name`: `typing.Optional[str]` +- `name`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.enums.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.enums.mdx index b40cdb7..631f180 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.enums.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.enums.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### DestinationFormat -Defined in `nexla_sdk/models/destinations/enums.py:58` +Defined in `nexla_sdk/models/destinations/enums.py:89` Output format for destinations. @@ -40,7 +40,7 @@ Members: ### DestinationType -Defined in `nexla_sdk/models/destinations/enums.py:13` +Defined in `nexla_sdk/models/destinations/enums.py:14` Supported sink types. @@ -49,27 +49,56 @@ Members: - `S3` = `s3` - `GCS` = `gcs` - `AZURE_BLB` = `azure_blb` +- `AZURE_DATA_LAKE` = `azure_data_lake` - `FTP` = `ftp` - `DROPBOX` = `dropbox` - `BOX` = `box` - `GDRIVE` = `gdrive` - `SHAREPOINT` = `sharepoint` +- `MIN_IO_S3` = `min_io_s3` +- `WEBDAV` = `webdav` - `MYSQL` = `mysql` - `POSTGRES` = `postgres` +- `SUPABASE` = `supabase` - `SQLSERVER` = `sqlserver` - `ORACLE` = `oracle` +- `ORACLE_AUTONOMOUS` = `oracle_autonomous` - `REDSHIFT` = `redshift` - `SNOWFLAKE` = `snowflake` +- `SNOWFLAKE_DCR` = `snowflake_dcr` - `BIGQUERY` = `bigquery` - `DATABRICKS` = `databricks` +- `AS400` = `as400` +- `AWS_ATHENA` = `aws_athena` +- `AZURE_SYNAPSE` = `azure_synapse` +- `CLOUDSQL_MYSQL` = `cloudsql_mysql` +- `CLOUDSQL_POSTGRES` = `cloudsql_postgres` +- `CLOUDSQL_SQLSERVER` = `cloudsql_sqlserver` +- `DB2` = `db2` +- `FIREBOLT` = `firebolt` +- `GCP_ALLOYDB` = `gcp_alloydb` +- `GCP_SPANNER` = `gcp_spanner` +- `HANA_JDBC` = `hana_jdbc` +- `HIVE` = `hive` +- `NETSUITE_JDBC` = `netsuite_jdbc` +- `SYBASE` = `sybase` +- `TERADATA` = `teradata` +- `DELTA_LAKE_AZURE_BLB` = `delta_lake_azure_blb` +- `DELTA_LAKE_AZURE_DATA_LAKE` = `delta_lake_azure_data_lake` +- `DELTA_LAKE_S3` = `delta_lake_s3` +- `S3_ICEBERG` = `s3_iceberg` - `MONGO` = `mongo` - `DYNAMODB` = `dynamodb` - `FIREBASE` = `firebase` - `KAFKA` = `kafka` - `CONFLUENT_KAFKA` = `confluent_kafka` - `GOOGLE_PUBSUB` = `google_pubsub` +- `JMS` = `jms` +- `TIBCO` = `tibco` - `REST` = `rest` +- `SOAP` = `soap` - `EMAIL` = `email` - `DATA_MAP` = `data_map` +- `NEXLA_MONITOR` = `nexla_monitor` - `PINECONE` = `pinecone` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.mdx index 561bb02..be468e9 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### DataMapInfo -Defined in `nexla_sdk/models/destinations/responses.py:22` +Defined in `nexla_sdk/models/destinations/responses.py:25` Basic data map information for destination. @@ -20,14 +20,14 @@ Fields: - `owner_id`: `int` - `org_id`: `int` - `name`: `str` -- `description`: `str` +- `description`: `Optional` - `public`: `bool` - `created_at`: `datetime` - `updated_at`: `datetime` ### DataSetInfo -Defined in `nexla_sdk/models/destinations/responses.py:10` +Defined in `nexla_sdk/models/destinations/responses.py:12` Basic dataset information for destination. @@ -35,16 +35,16 @@ Fields: - `id`: `int` - `name`: `str` -- `description`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `output_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `version`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `description`: `Optional` +- `status`: `Optional` +- `output_schema`: `Optional` +- `version`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### Destination -Defined in `nexla_sdk/models/destinations/responses.py:34` +Defined in `nexla_sdk/models/destinations/responses.py:38` Destination (data sink) response model. @@ -54,36 +54,36 @@ Fields: - `name`: `str` - `status`: `str` - `sink_type`: `str` -- `connector_type`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `managed`: `typing.Optional[bool]` -- `connector`: `typing.Optional[nexla_sdk.models.common.Connector]` -- `description`: `typing.Optional[str]` -- `data_set_id`: `typing.Optional[int]` -- `data_map_id`: `typing.Optional[int]` -- `data_source_id`: `typing.Optional[int]` -- `sink_format`: `typing.Optional[nexla_sdk.models.destinations.enums.DestinationFormat]` -- `sink_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `sink_schedule`: `typing.Optional[str]` +- `connector_type`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `managed`: `Optional` +- `connector`: `Optional` +- `description`: `Optional` +- `data_set_id`: `Optional` +- `data_map_id`: `Optional` +- `data_source_id`: `Optional` +- `sink_format`: `Optional` +- `sink_config`: `Optional` +- `sink_schedule`: `Optional` - `in_memory`: `bool` -- `data_set`: `typing.Optional[nexla_sdk.models.destinations.responses.DataSetInfo]` -- `data_map`: `typing.Optional[nexla_sdk.models.destinations.responses.DataMapInfo]` -- `data_credentials_id`: `typing.Optional[int]` -- `data_credentials`: `typing.Optional[nexla_sdk.models.credentials.responses.Credential]` -- `copied_from_id`: `typing.Optional[int]` -- `flow_type`: `typing.Optional[str]` -- `has_template`: `typing.Optional[bool]` -- `vendor_endpoint`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `vendor`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `data_set`: `Optional` +- `data_map`: `Optional` +- `data_credentials_id`: `Optional` +- `data_credentials`: `Optional` +- `copied_from_id`: `Optional` +- `flow_type`: `Optional` +- `has_template`: `Optional` +- `vendor_endpoint`: `Optional` +- `vendor`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### DestinationCopyOptions -Defined in `nexla_sdk/models/destinations/requests.py:30` +Defined in `nexla_sdk/models/destinations/requests.py:33` Options for copying a destination. @@ -91,12 +91,12 @@ Fields: - `reuse_data_credentials`: `bool` - `copy_access_controls`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` ### DestinationCreate -Defined in `nexla_sdk/models/destinations/requests.py:5` +Defined in `nexla_sdk/models/destinations/requests.py:6` Request model for creating a destination. @@ -106,14 +106,14 @@ Fields: - `sink_type`: `str` - `data_credentials_id`: `int` - `data_set_id`: `int` -- `description`: `typing.Optional[str]` -- `sink_config`: `typing.Optional[typing.Dict]` -- `vendor_endpoint_id`: `typing.Optional[int]` -- `template_config`: `typing.Optional[typing.Dict]` +- `description`: `Optional` +- `sink_config`: `Optional` +- `vendor_endpoint_id`: `Optional` +- `template_config`: `Optional` ### DestinationFormat -Defined in `nexla_sdk/models/destinations/enums.py:58` +Defined in `nexla_sdk/models/destinations/enums.py:89` Output format for destinations. @@ -143,7 +143,7 @@ Members: ### DestinationType -Defined in `nexla_sdk/models/destinations/enums.py:13` +Defined in `nexla_sdk/models/destinations/enums.py:14` Supported sink types. @@ -152,41 +152,70 @@ Members: - `S3` = `s3` - `GCS` = `gcs` - `AZURE_BLB` = `azure_blb` +- `AZURE_DATA_LAKE` = `azure_data_lake` - `FTP` = `ftp` - `DROPBOX` = `dropbox` - `BOX` = `box` - `GDRIVE` = `gdrive` - `SHAREPOINT` = `sharepoint` +- `MIN_IO_S3` = `min_io_s3` +- `WEBDAV` = `webdav` - `MYSQL` = `mysql` - `POSTGRES` = `postgres` +- `SUPABASE` = `supabase` - `SQLSERVER` = `sqlserver` - `ORACLE` = `oracle` +- `ORACLE_AUTONOMOUS` = `oracle_autonomous` - `REDSHIFT` = `redshift` - `SNOWFLAKE` = `snowflake` +- `SNOWFLAKE_DCR` = `snowflake_dcr` - `BIGQUERY` = `bigquery` - `DATABRICKS` = `databricks` +- `AS400` = `as400` +- `AWS_ATHENA` = `aws_athena` +- `AZURE_SYNAPSE` = `azure_synapse` +- `CLOUDSQL_MYSQL` = `cloudsql_mysql` +- `CLOUDSQL_POSTGRES` = `cloudsql_postgres` +- `CLOUDSQL_SQLSERVER` = `cloudsql_sqlserver` +- `DB2` = `db2` +- `FIREBOLT` = `firebolt` +- `GCP_ALLOYDB` = `gcp_alloydb` +- `GCP_SPANNER` = `gcp_spanner` +- `HANA_JDBC` = `hana_jdbc` +- `HIVE` = `hive` +- `NETSUITE_JDBC` = `netsuite_jdbc` +- `SYBASE` = `sybase` +- `TERADATA` = `teradata` +- `DELTA_LAKE_AZURE_BLB` = `delta_lake_azure_blb` +- `DELTA_LAKE_AZURE_DATA_LAKE` = `delta_lake_azure_data_lake` +- `DELTA_LAKE_S3` = `delta_lake_s3` +- `S3_ICEBERG` = `s3_iceberg` - `MONGO` = `mongo` - `DYNAMODB` = `dynamodb` - `FIREBASE` = `firebase` - `KAFKA` = `kafka` - `CONFLUENT_KAFKA` = `confluent_kafka` - `GOOGLE_PUBSUB` = `google_pubsub` +- `JMS` = `jms` +- `TIBCO` = `tibco` - `REST` = `rest` +- `SOAP` = `soap` - `EMAIL` = `email` - `DATA_MAP` = `data_map` +- `NEXLA_MONITOR` = `nexla_monitor` - `PINECONE` = `pinecone` ### DestinationUpdate -Defined in `nexla_sdk/models/destinations/requests.py:21` +Defined in `nexla_sdk/models/destinations/requests.py:23` Request model for updating a destination. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `sink_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` +- `name`: `Optional` +- `description`: `Optional` +- `sink_config`: `Optional` +- `data_credentials_id`: `Optional` +- `data_set_id`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.requests.mdx index d016031..6b10160 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.requests.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### DestinationCopyOptions -Defined in `nexla_sdk/models/destinations/requests.py:30` +Defined in `nexla_sdk/models/destinations/requests.py:33` Options for copying a destination. @@ -18,12 +18,12 @@ Fields: - `reuse_data_credentials`: `bool` - `copy_access_controls`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` ### DestinationCreate -Defined in `nexla_sdk/models/destinations/requests.py:5` +Defined in `nexla_sdk/models/destinations/requests.py:6` Request model for creating a destination. @@ -33,22 +33,22 @@ Fields: - `sink_type`: `str` - `data_credentials_id`: `int` - `data_set_id`: `int` -- `description`: `typing.Optional[str]` -- `sink_config`: `typing.Optional[typing.Dict]` -- `vendor_endpoint_id`: `typing.Optional[int]` -- `template_config`: `typing.Optional[typing.Dict]` +- `description`: `Optional` +- `sink_config`: `Optional` +- `vendor_endpoint_id`: `Optional` +- `template_config`: `Optional` ### DestinationUpdate -Defined in `nexla_sdk/models/destinations/requests.py:21` +Defined in `nexla_sdk/models/destinations/requests.py:23` Request model for updating a destination. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `sink_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` +- `name`: `Optional` +- `description`: `Optional` +- `sink_config`: `Optional` +- `data_credentials_id`: `Optional` +- `data_set_id`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.responses.mdx index 2db9557..1e2c393 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.destinations.responses.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### DataMapInfo -Defined in `nexla_sdk/models/destinations/responses.py:22` +Defined in `nexla_sdk/models/destinations/responses.py:25` Basic data map information for destination. @@ -20,14 +20,14 @@ Fields: - `owner_id`: `int` - `org_id`: `int` - `name`: `str` -- `description`: `str` +- `description`: `Optional` - `public`: `bool` - `created_at`: `datetime` - `updated_at`: `datetime` ### DataSetInfo -Defined in `nexla_sdk/models/destinations/responses.py:10` +Defined in `nexla_sdk/models/destinations/responses.py:12` Basic dataset information for destination. @@ -35,16 +35,16 @@ Fields: - `id`: `int` - `name`: `str` -- `description`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `output_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `version`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `description`: `Optional` +- `status`: `Optional` +- `output_schema`: `Optional` +- `version`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### Destination -Defined in `nexla_sdk/models/destinations/responses.py:34` +Defined in `nexla_sdk/models/destinations/responses.py:38` Destination (data sink) response model. @@ -54,30 +54,30 @@ Fields: - `name`: `str` - `status`: `str` - `sink_type`: `str` -- `connector_type`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `managed`: `typing.Optional[bool]` -- `connector`: `typing.Optional[nexla_sdk.models.common.Connector]` -- `description`: `typing.Optional[str]` -- `data_set_id`: `typing.Optional[int]` -- `data_map_id`: `typing.Optional[int]` -- `data_source_id`: `typing.Optional[int]` -- `sink_format`: `typing.Optional[nexla_sdk.models.destinations.enums.DestinationFormat]` -- `sink_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `sink_schedule`: `typing.Optional[str]` +- `connector_type`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `managed`: `Optional` +- `connector`: `Optional` +- `description`: `Optional` +- `data_set_id`: `Optional` +- `data_map_id`: `Optional` +- `data_source_id`: `Optional` +- `sink_format`: `Optional` +- `sink_config`: `Optional` +- `sink_schedule`: `Optional` - `in_memory`: `bool` -- `data_set`: `typing.Optional[nexla_sdk.models.destinations.responses.DataSetInfo]` -- `data_map`: `typing.Optional[nexla_sdk.models.destinations.responses.DataMapInfo]` -- `data_credentials_id`: `typing.Optional[int]` -- `data_credentials`: `typing.Optional[nexla_sdk.models.credentials.responses.Credential]` -- `copied_from_id`: `typing.Optional[int]` -- `flow_type`: `typing.Optional[str]` -- `has_template`: `typing.Optional[bool]` -- `vendor_endpoint`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `vendor`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `data_set`: `Optional` +- `data_map`: `Optional` +- `data_credentials_id`: `Optional` +- `data_credentials`: `Optional` +- `copied_from_id`: `Optional` +- `flow_type`: `Optional` +- `has_template`: `Optional` +- `vendor_endpoint`: `Optional` +- `vendor`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.doc_containers.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.doc_containers.mdx index 6b89e9a..368014f 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.doc_containers.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.doc_containers.mdx @@ -25,5 +25,5 @@ Features: Fields: - `id`: `int` -- `name`: `typing.Optional[str]` +- `name`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.doc_containers.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.doc_containers.responses.mdx index 7314137..3d32f48 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.doc_containers.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.doc_containers.responses.mdx @@ -25,5 +25,5 @@ Features: Fields: - `id`: `int` -- `name`: `typing.Optional[str]` +- `name`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.enums.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.enums.mdx index 095d0c9..e07fabd 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.enums.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.enums.mdx @@ -23,7 +23,7 @@ Members: ### ConnectorCategory -Defined in `nexla_sdk/models/enums.py:85` +Defined in `nexla_sdk/models/enums.py:93` Connector categories. @@ -39,7 +39,7 @@ Members: ### NotificationChannel -Defined in `nexla_sdk/models/enums.py:53` +Defined in `nexla_sdk/models/enums.py:57` Notification delivery channels. @@ -53,7 +53,7 @@ Members: ### NotificationLevel -Defined in `nexla_sdk/models/enums.py:43` +Defined in `nexla_sdk/models/enums.py:46` Notification levels. @@ -68,7 +68,7 @@ Members: ### OrgMembershipStatus -Defined in `nexla_sdk/models/enums.py:79` +Defined in `nexla_sdk/models/enums.py:86` Organization membership status. @@ -79,7 +79,7 @@ Members: ### ResourceStatus -Defined in `nexla_sdk/models/enums.py:12` +Defined in `nexla_sdk/models/enums.py:13` Common resource status values. @@ -95,7 +95,7 @@ Members: ### ResourceType -Defined in `nexla_sdk/models/enums.py:23` +Defined in `nexla_sdk/models/enums.py:25` Resource types in Nexla. @@ -120,7 +120,7 @@ Members: ### UserStatus -Defined in `nexla_sdk/models/enums.py:70` +Defined in `nexla_sdk/models/enums.py:76` User account status. @@ -134,7 +134,7 @@ Members: ### UserTier -Defined in `nexla_sdk/models/enums.py:62` +Defined in `nexla_sdk/models/enums.py:67` User account tiers. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.flows.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.flows.mdx index 2622789..75ac30b 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.flows.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.flows.mdx @@ -8,9 +8,24 @@ keywords: [Nexla, SDK, Python, API] ## Classes +### DocsRecommendation + +Defined in `nexla_sdk/models/flows/responses.py:152` + +Response from docs_recommendation() with AI-generated documentation. + +Attributes: + recommendation: The AI-generated documentation suggestion. + status: Status of the recommendation request. + +Fields: + +- `recommendation`: `Optional` +- `status`: `Optional` + ### FlowCopyOptions -Defined in `nexla_sdk/models/flows/requests.py:5` +Defined in `nexla_sdk/models/flows/requests.py:6` Options for copying a flow. @@ -19,30 +34,96 @@ Fields: - `reuse_data_credentials`: `bool` - `copy_access_controls`: `bool` - `copy_dependent_data_flows`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` ### FlowElements -Defined in `nexla_sdk/models/flows/responses.py:22` +Defined in `nexla_sdk/models/flows/responses.py:164` Flow elements containing all resources. Fields: -- `code_containers`: `typing.List[typing.Dict[str, typing.Any]]` -- `data_sources`: `typing.List[nexla_sdk.models.sources.responses.Source]` -- `data_sets`: `typing.List[nexla_sdk.models.nexsets.responses.Nexset]` -- `data_sinks`: `typing.List[nexla_sdk.models.destinations.responses.Destination]` -- `data_credentials`: `typing.List[nexla_sdk.models.credentials.responses.Credential]` -- `shared_data_sets`: `typing.List[typing.Dict[str, typing.Any]]` -- `orgs`: `typing.List[typing.Dict[str, typing.Any]]` -- `users`: `typing.List[typing.Dict[str, typing.Any]]` -- `projects`: `typing.List[typing.Dict[str, typing.Any]]` +- `code_containers`: `List` +- `data_sources`: `List` +- `data_sets`: `List` +- `data_sinks`: `List` +- `data_credentials`: `List` +- `shared_data_sets`: `List` +- `orgs`: `List` +- `users`: `List` +- `projects`: `List` + +### FlowLogEntry + +Defined in `nexla_sdk/models/flows/responses.py:25` + +A single flow execution log entry. + +Fields: + +- `timestamp`: `Optional` +- `level`: `Optional` +- `message`: `Optional` +- `log_type`: `Optional` +- `resource_id`: `Optional` +- `resource_type`: `Optional` +- `run_id`: `Optional` +- `details`: `Optional` + +### FlowLogsMeta + +Defined in `nexla_sdk/models/flows/responses.py:53` + +Metadata for flow logs pagination. + +The live API also returns run context fields (org_id, run_id) in logs.meta. + +Fields: + +- `current_page`: `Optional` +- `page_count`: `Optional` +- `total_count`: `Optional` +- `org_id`: `Optional` +- `run_id`: `Optional` + +### FlowLogsResponse + +Defined in `nexla_sdk/models/flows/responses.py:82` + +Response from get_logs() containing flow execution logs. + +Attributes: + status: Status code of the response (200 for success). + message: Status message ("Ok" for success). + logs: List of log entries. + meta: Pagination metadata. + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `logs`: `List` +- `meta`: `Optional` + +### FlowMetricData + +Defined in `nexla_sdk/models/flows/responses.py:113` + +Flow metric data for a resource. + +Fields: + +- `records`: `Optional` +- `size`: `Optional` +- `errors`: `Optional` +- `run_id`: `Optional` +- `reporting_date`: `Optional` ### FlowMetrics -Defined in `nexla_sdk/models/flows/responses.py:12` +Defined in `nexla_sdk/models/flows/responses.py:14` Flow metrics information. @@ -55,23 +136,63 @@ Fields: - `reporting_date`: `datetime` - `run_id`: `int` +### FlowMetricsApiResponse + +Defined in `nexla_sdk/models/flows/responses.py:138` + +Response from get_metrics() containing flow metrics. + +Attributes: + status: Status code of the response (200 for success). + message: Status message ("Ok" for success). + metrics: Metrics data including resource-keyed data and pagination. + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `metrics`: `Optional` + +### FlowMetricsData + +Defined in `nexla_sdk/models/flows/responses.py:131` + +Flow metrics data container. + +Fields: + +- `data`: `Optional` +- `meta`: `Optional` + +### FlowMetricsMeta + +Defined in `nexla_sdk/models/flows/responses.py:123` + +Metadata for flow metrics pagination. + +Fields: + +- `current_page`: `Optional` +- `page_count`: `Optional` +- `total_count`: `Optional` + ### FlowResponse -Defined in `nexla_sdk/models/flows/responses.py:35` +Defined in `nexla_sdk/models/flows/responses.py:178` Flow response model. Fields: -- `flows`: `typing.List[nexla_sdk.models.common.FlowNode]` -- `code_containers`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `data_sources`: `typing.Optional[typing.List[nexla_sdk.models.sources.responses.Source]]` -- `data_sets`: `typing.Optional[typing.List[nexla_sdk.models.nexsets.responses.Nexset]]` -- `data_sinks`: `typing.Optional[typing.List[nexla_sdk.models.destinations.responses.Destination]]` -- `data_credentials`: `typing.Optional[typing.List[nexla_sdk.models.credentials.responses.Credential]]` -- `shared_data_sets`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `orgs`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `users`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `projects`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `metrics`: `typing.Optional[typing.List[nexla_sdk.models.flows.responses.FlowMetrics]]` +- `flows`: `List` +- `code_containers`: `Optional` +- `data_sources`: `Optional` +- `data_sets`: `Optional` +- `data_sinks`: `Optional` +- `data_credentials`: `Optional` +- `shared_data_sets`: `Optional` +- `orgs`: `Optional` +- `users`: `Optional` +- `projects`: `Optional` +- `metrics`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.flows.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.flows.requests.mdx index 90ad667..ee9a6db 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.flows.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.flows.requests.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### FlowCopyOptions -Defined in `nexla_sdk/models/flows/requests.py:5` +Defined in `nexla_sdk/models/flows/requests.py:6` Options for copying a flow. @@ -19,6 +19,6 @@ Fields: - `reuse_data_credentials`: `bool` - `copy_access_controls`: `bool` - `copy_dependent_data_flows`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.flows.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.flows.responses.mdx index adcbd55..22958b3 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.flows.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.flows.responses.mdx @@ -8,27 +8,108 @@ keywords: [Nexla, SDK, Python, API] ## Classes +### DocsRecommendation + +Defined in `nexla_sdk/models/flows/responses.py:152` + +Response from docs_recommendation() with AI-generated documentation. + +Attributes: + recommendation: The AI-generated documentation suggestion. + status: Status of the recommendation request. + +Fields: + +- `recommendation`: `Optional` +- `status`: `Optional` + ### FlowElements -Defined in `nexla_sdk/models/flows/responses.py:22` +Defined in `nexla_sdk/models/flows/responses.py:164` Flow elements containing all resources. Fields: -- `code_containers`: `typing.List[typing.Dict[str, typing.Any]]` -- `data_sources`: `typing.List[nexla_sdk.models.sources.responses.Source]` -- `data_sets`: `typing.List[nexla_sdk.models.nexsets.responses.Nexset]` -- `data_sinks`: `typing.List[nexla_sdk.models.destinations.responses.Destination]` -- `data_credentials`: `typing.List[nexla_sdk.models.credentials.responses.Credential]` -- `shared_data_sets`: `typing.List[typing.Dict[str, typing.Any]]` -- `orgs`: `typing.List[typing.Dict[str, typing.Any]]` -- `users`: `typing.List[typing.Dict[str, typing.Any]]` -- `projects`: `typing.List[typing.Dict[str, typing.Any]]` +- `code_containers`: `List` +- `data_sources`: `List` +- `data_sets`: `List` +- `data_sinks`: `List` +- `data_credentials`: `List` +- `shared_data_sets`: `List` +- `orgs`: `List` +- `users`: `List` +- `projects`: `List` + +### FlowLogEntry + +Defined in `nexla_sdk/models/flows/responses.py:25` + +A single flow execution log entry. + +Fields: + +- `timestamp`: `Optional` +- `level`: `Optional` +- `message`: `Optional` +- `log_type`: `Optional` +- `resource_id`: `Optional` +- `resource_type`: `Optional` +- `run_id`: `Optional` +- `details`: `Optional` + +### FlowLogsMeta + +Defined in `nexla_sdk/models/flows/responses.py:53` + +Metadata for flow logs pagination. + +The live API also returns run context fields (org_id, run_id) in logs.meta. + +Fields: + +- `current_page`: `Optional` +- `page_count`: `Optional` +- `total_count`: `Optional` +- `org_id`: `Optional` +- `run_id`: `Optional` + +### FlowLogsResponse + +Defined in `nexla_sdk/models/flows/responses.py:82` + +Response from get_logs() containing flow execution logs. + +Attributes: + status: Status code of the response (200 for success). + message: Status message ("Ok" for success). + logs: List of log entries. + meta: Pagination metadata. + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `logs`: `List` +- `meta`: `Optional` + +### FlowMetricData + +Defined in `nexla_sdk/models/flows/responses.py:113` + +Flow metric data for a resource. + +Fields: + +- `records`: `Optional` +- `size`: `Optional` +- `errors`: `Optional` +- `run_id`: `Optional` +- `reporting_date`: `Optional` ### FlowMetrics -Defined in `nexla_sdk/models/flows/responses.py:12` +Defined in `nexla_sdk/models/flows/responses.py:14` Flow metrics information. @@ -41,23 +122,63 @@ Fields: - `reporting_date`: `datetime` - `run_id`: `int` +### FlowMetricsApiResponse + +Defined in `nexla_sdk/models/flows/responses.py:138` + +Response from get_metrics() containing flow metrics. + +Attributes: + status: Status code of the response (200 for success). + message: Status message ("Ok" for success). + metrics: Metrics data including resource-keyed data and pagination. + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `metrics`: `Optional` + +### FlowMetricsData + +Defined in `nexla_sdk/models/flows/responses.py:131` + +Flow metrics data container. + +Fields: + +- `data`: `Optional` +- `meta`: `Optional` + +### FlowMetricsMeta + +Defined in `nexla_sdk/models/flows/responses.py:123` + +Metadata for flow metrics pagination. + +Fields: + +- `current_page`: `Optional` +- `page_count`: `Optional` +- `total_count`: `Optional` + ### FlowResponse -Defined in `nexla_sdk/models/flows/responses.py:35` +Defined in `nexla_sdk/models/flows/responses.py:178` Flow response model. Fields: -- `flows`: `typing.List[nexla_sdk.models.common.FlowNode]` -- `code_containers`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `data_sources`: `typing.Optional[typing.List[nexla_sdk.models.sources.responses.Source]]` -- `data_sets`: `typing.Optional[typing.List[nexla_sdk.models.nexsets.responses.Nexset]]` -- `data_sinks`: `typing.Optional[typing.List[nexla_sdk.models.destinations.responses.Destination]]` -- `data_credentials`: `typing.Optional[typing.List[nexla_sdk.models.credentials.responses.Credential]]` -- `shared_data_sets`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `orgs`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `users`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `projects`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `metrics`: `typing.Optional[typing.List[nexla_sdk.models.flows.responses.FlowMetrics]]` +- `flows`: `List` +- `code_containers`: `Optional` +- `data_sources`: `Optional` +- `data_sets`: `Optional` +- `data_sinks`: `Optional` +- `data_credentials`: `Optional` +- `shared_data_sets`: `Optional` +- `orgs`: `Optional` +- `users`: `Optional` +- `projects`: `Optional` +- `metrics`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.genai.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.genai.mdx index 8bbd67b..3a7a0dd 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.genai.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.genai.mdx @@ -24,8 +24,8 @@ Features: Fields: -- `gen_ai_usage`: `typing.Optional[str]` -- `active_config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `gen_ai_usage`: `Optional` +- `active_config`: `Optional` ### GenAiConfig @@ -44,11 +44,11 @@ Features: Fields: - `id`: `int` -- `name`: `typing.Optional[str]` -- `provider`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `name`: `Optional` +- `provider`: `Optional` +- `config`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### GenAiConfigCreatePayload @@ -68,9 +68,9 @@ Fields: - `name`: `str` - `type`: `str` -- `config`: `typing.Dict[str, typing.Any]` +- `config`: `Dict` - `data_credentials_id`: `int` -- `description`: `typing.Optional[str]` +- `description`: `Optional` ### GenAiConfigPayload @@ -88,12 +88,12 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `type`: `typing.Optional[str]` -- `data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `description`: `Optional` +- `status`: `Optional` +- `config`: `Optional` +- `type`: `Optional` +- `data_credentials_id`: `Optional` ### GenAiOrgSetting @@ -112,12 +112,12 @@ Features: Fields: - `id`: `int` -- `org_id`: `typing.Optional[int]` -- `gen_ai_usage`: `typing.Optional[str]` -- `active_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `configs`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `org_id`: `Optional` +- `gen_ai_usage`: `Optional` +- `active_config`: `Optional` +- `configs`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### GenAiOrgSettingPayload @@ -135,7 +135,7 @@ Features: Fields: -- `org_id`: `typing.Optional[int]` +- `org_id`: `Optional` - `gen_ai_config_id`: `int` - `gen_ai_usage`: `str` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.genai.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.genai.requests.mdx index e70bab5..92a6335 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.genai.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.genai.requests.mdx @@ -26,9 +26,9 @@ Fields: - `name`: `str` - `type`: `str` -- `config`: `typing.Dict[str, typing.Any]` +- `config`: `Dict` - `data_credentials_id`: `int` -- `description`: `typing.Optional[str]` +- `description`: `Optional` ### GenAiConfigPayload @@ -46,12 +46,12 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `type`: `typing.Optional[str]` -- `data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `description`: `Optional` +- `status`: `Optional` +- `config`: `Optional` +- `type`: `Optional` +- `data_credentials_id`: `Optional` ### GenAiOrgSettingPayload @@ -69,7 +69,7 @@ Features: Fields: -- `org_id`: `typing.Optional[int]` +- `org_id`: `Optional` - `gen_ai_config_id`: `int` - `gen_ai_usage`: `str` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.genai.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.genai.responses.mdx index bba54aa..b725c29 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.genai.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.genai.responses.mdx @@ -24,8 +24,8 @@ Features: Fields: -- `gen_ai_usage`: `typing.Optional[str]` -- `active_config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `gen_ai_usage`: `Optional` +- `active_config`: `Optional` ### GenAiConfig @@ -44,11 +44,11 @@ Features: Fields: - `id`: `int` -- `name`: `typing.Optional[str]` -- `provider`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `name`: `Optional` +- `provider`: `Optional` +- `config`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### GenAiOrgSetting @@ -67,10 +67,10 @@ Features: Fields: - `id`: `int` -- `org_id`: `typing.Optional[int]` -- `gen_ai_usage`: `typing.Optional[str]` -- `active_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `configs`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `org_id`: `Optional` +- `gen_ai_usage`: `Optional` +- `active_config`: `Optional` +- `configs`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.mdx index c1b43e8..216bf0a 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Lookup -Defined in `nexla_sdk/models/lookups/responses.py:8` +Defined in `nexla_sdk/models/lookups/responses.py:10` Lookup (data map) response model. @@ -22,25 +22,25 @@ Fields: - `map_primary_key`: `str` - `owner`: `Owner` - `org`: `Organization` -- `access_roles`: `typing.List[str]` +- `access_roles`: `List` - `public`: `bool` - `managed`: `bool` - `data_type`: `str` - `emit_data_default`: `bool` - `use_versioning`: `bool` -- `data_format`: `typing.Optional[str]` -- `data_sink_id`: `typing.Optional[int]` -- `data_defaults`: `typing.Dict[str, typing.Any]` -- `data_set_id`: `typing.Optional[int]` -- `map_entry_count`: `typing.Optional[int]` -- `map_entry_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `data_format`: `Optional` +- `data_sink_id`: `Optional` +- `data_defaults`: `Dict` +- `data_set_id`: `Optional` +- `map_entry_count`: `Optional` +- `map_entry_schema`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### LookupCreate -Defined in `nexla_sdk/models/lookups/requests.py:6` +Defined in `nexla_sdk/models/lookups/requests.py:8` Request model for creating a lookup. @@ -49,34 +49,34 @@ Fields: - `name`: `str` - `data_type`: `str` - `map_primary_key`: `str` -- `description`: `typing.Optional[str]` -- `data_defaults`: `typing.Dict[str, typing.Any]` +- `description`: `Optional` +- `data_defaults`: `Dict` - `emit_data_default`: `bool` -- `data_map`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `tags`: `typing.List[str]` +- `data_map`: `Optional` +- `tags`: `List` ### LookupEntriesUpsert -Defined in `nexla_sdk/models/lookups/requests.py:28` +Defined in `nexla_sdk/models/lookups/requests.py:32` Request model for upserting lookup entries. Fields: -- `entries`: `typing.List[typing.Dict[str, typing.Any]]` +- `entries`: `List` ### LookupUpdate -Defined in `nexla_sdk/models/lookups/requests.py:18` +Defined in `nexla_sdk/models/lookups/requests.py:21` Request model for updating a lookup. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `map_primary_key`: `typing.Optional[str]` -- `data_defaults`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `emit_data_default`: `typing.Optional[bool]` -- `tags`: `typing.Optional[typing.List[str]]` +- `name`: `Optional` +- `description`: `Optional` +- `map_primary_key`: `Optional` +- `data_defaults`: `Optional` +- `emit_data_default`: `Optional` +- `tags`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.requests.mdx index 05f8ca5..da8ae23 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.requests.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### LookupCreate -Defined in `nexla_sdk/models/lookups/requests.py:6` +Defined in `nexla_sdk/models/lookups/requests.py:8` Request model for creating a lookup. @@ -19,34 +19,34 @@ Fields: - `name`: `str` - `data_type`: `str` - `map_primary_key`: `str` -- `description`: `typing.Optional[str]` -- `data_defaults`: `typing.Dict[str, typing.Any]` +- `description`: `Optional` +- `data_defaults`: `Dict` - `emit_data_default`: `bool` -- `data_map`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `tags`: `typing.List[str]` +- `data_map`: `Optional` +- `tags`: `List` ### LookupEntriesUpsert -Defined in `nexla_sdk/models/lookups/requests.py:28` +Defined in `nexla_sdk/models/lookups/requests.py:32` Request model for upserting lookup entries. Fields: -- `entries`: `typing.List[typing.Dict[str, typing.Any]]` +- `entries`: `List` ### LookupUpdate -Defined in `nexla_sdk/models/lookups/requests.py:18` +Defined in `nexla_sdk/models/lookups/requests.py:21` Request model for updating a lookup. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `map_primary_key`: `typing.Optional[str]` -- `data_defaults`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `emit_data_default`: `typing.Optional[bool]` -- `tags`: `typing.Optional[typing.List[str]]` +- `name`: `Optional` +- `description`: `Optional` +- `map_primary_key`: `Optional` +- `data_defaults`: `Optional` +- `emit_data_default`: `Optional` +- `tags`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.responses.mdx index f7b7e5a..59ce133 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.lookups.responses.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Lookup -Defined in `nexla_sdk/models/lookups/responses.py:8` +Defined in `nexla_sdk/models/lookups/responses.py:10` Lookup (data map) response model. @@ -22,19 +22,19 @@ Fields: - `map_primary_key`: `str` - `owner`: `Owner` - `org`: `Organization` -- `access_roles`: `typing.List[str]` +- `access_roles`: `List` - `public`: `bool` - `managed`: `bool` - `data_type`: `str` - `emit_data_default`: `bool` - `use_versioning`: `bool` -- `data_format`: `typing.Optional[str]` -- `data_sink_id`: `typing.Optional[int]` -- `data_defaults`: `typing.Dict[str, typing.Any]` -- `data_set_id`: `typing.Optional[int]` -- `map_entry_count`: `typing.Optional[int]` -- `map_entry_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `data_format`: `Optional` +- `data_sink_id`: `Optional` +- `data_defaults`: `Dict` +- `data_set_id`: `Optional` +- `map_entry_count`: `Optional` +- `map_entry_schema`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.mdx index 94eefdf..f8bb1c3 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.mdx @@ -16,12 +16,12 @@ Reference to a user for custodians payload (by id or email). Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` ### CustodiansPayload -Defined in `nexla_sdk/models/marketplace/requests.py:12` +Defined in `nexla_sdk/models/marketplace/requests.py:13` Base model class with Pydantic functionality and Nexla API compatibility. @@ -35,11 +35,11 @@ Features: Fields: -- `custodians`: `typing.List[nexla_sdk.models.marketplace.requests.CustodianRef]` +- `custodians`: `List` ### MarketplaceDomain -Defined in `nexla_sdk/models/marketplace/responses.py:8` +Defined in `nexla_sdk/models/marketplace/responses.py:7` Base model class with Pydantic functionality and Nexla API compatibility. @@ -55,15 +55,15 @@ Fields: - `id`: `int` - `name`: `str` -- `slug`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `org_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `slug`: `Optional` +- `description`: `Optional` +- `org_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### MarketplaceDomainCreate -Defined in `nexla_sdk/models/marketplace/requests.py:16` +Defined in `nexla_sdk/models/marketplace/requests.py:17` Base model class with Pydantic functionality and Nexla API compatibility. @@ -77,16 +77,16 @@ Features: Fields: -- `org_id`: `typing.Optional[int]` -- `owner_id`: `typing.Optional[int]` +- `org_id`: `Optional` +- `owner_id`: `Optional` - `name`: `str` -- `description`: `typing.Optional[str]` -- `parent_id`: `typing.Optional[int]` -- `custodians`: `typing.Optional[nexla_sdk.models.marketplace.requests.CustodiansPayload]` +- `description`: `Optional` +- `parent_id`: `Optional` +- `custodians`: `Optional` ### MarketplaceDomainsItem -Defined in `nexla_sdk/models/marketplace/responses.py:18` +Defined in `nexla_sdk/models/marketplace/responses.py:17` Base model class with Pydantic functionality and Nexla API compatibility. @@ -101,15 +101,15 @@ Features: Fields: - `id`: `int` -- `domain_id`: `typing.Optional[int]` -- `resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `domain_id`: `Optional` +- `resource_type`: `Optional` +- `resource_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### MarketplaceDomainsItemCreate -Defined in `nexla_sdk/models/marketplace/requests.py:25` +Defined in `nexla_sdk/models/marketplace/requests.py:26` Base model class with Pydantic functionality and Nexla API compatibility. @@ -124,6 +124,6 @@ Features: Fields: - `name`: `str` -- `description`: `typing.Optional[str]` +- `description`: `Optional` - `data_set_id`: `int` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.requests.mdx index b296f22..e42d708 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.requests.mdx @@ -16,12 +16,12 @@ Reference to a user for custodians payload (by id or email). Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` ### CustodiansPayload -Defined in `nexla_sdk/models/marketplace/requests.py:12` +Defined in `nexla_sdk/models/marketplace/requests.py:13` Base model class with Pydantic functionality and Nexla API compatibility. @@ -35,11 +35,11 @@ Features: Fields: -- `custodians`: `typing.List[nexla_sdk.models.marketplace.requests.CustodianRef]` +- `custodians`: `List` ### MarketplaceDomainCreate -Defined in `nexla_sdk/models/marketplace/requests.py:16` +Defined in `nexla_sdk/models/marketplace/requests.py:17` Base model class with Pydantic functionality and Nexla API compatibility. @@ -53,16 +53,16 @@ Features: Fields: -- `org_id`: `typing.Optional[int]` -- `owner_id`: `typing.Optional[int]` +- `org_id`: `Optional` +- `owner_id`: `Optional` - `name`: `str` -- `description`: `typing.Optional[str]` -- `parent_id`: `typing.Optional[int]` -- `custodians`: `typing.Optional[nexla_sdk.models.marketplace.requests.CustodiansPayload]` +- `description`: `Optional` +- `parent_id`: `Optional` +- `custodians`: `Optional` ### MarketplaceDomainsItemCreate -Defined in `nexla_sdk/models/marketplace/requests.py:25` +Defined in `nexla_sdk/models/marketplace/requests.py:26` Base model class with Pydantic functionality and Nexla API compatibility. @@ -77,6 +77,6 @@ Features: Fields: - `name`: `str` -- `description`: `typing.Optional[str]` +- `description`: `Optional` - `data_set_id`: `int` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.responses.mdx index b8510ba..ab47456 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.marketplace.responses.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### MarketplaceDomain -Defined in `nexla_sdk/models/marketplace/responses.py:8` +Defined in `nexla_sdk/models/marketplace/responses.py:7` Base model class with Pydantic functionality and Nexla API compatibility. @@ -26,15 +26,15 @@ Fields: - `id`: `int` - `name`: `str` -- `slug`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `org_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `slug`: `Optional` +- `description`: `Optional` +- `org_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### MarketplaceDomainsItem -Defined in `nexla_sdk/models/marketplace/responses.py:18` +Defined in `nexla_sdk/models/marketplace/responses.py:17` Base model class with Pydantic functionality and Nexla API compatibility. @@ -49,9 +49,9 @@ Features: Fields: - `id`: `int` -- `domain_id`: `typing.Optional[int]` -- `resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `domain_id`: `Optional` +- `resource_type`: `Optional` +- `resource_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.mdx index 748aa62..afe43bb 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.mdx @@ -35,63 +35,63 @@ Members: ### AccessorsRequest -Defined in `nexla_sdk/models/access/requests.py:38` +Defined in `nexla_sdk/models/access/requests.py:49` Request model for accessor operations. Fields: -- `accessors`: `typing.List[typing.Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]` — List of accessor requests +- `accessors`: `List` — List of accessor requests Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### AccountMetrics -Defined in `nexla_sdk/models/metrics/responses.py:5` +Defined in `nexla_sdk/models/metrics/responses.py:7` Account utilization metrics. Fields: - `status`: `int` -- `metrics`: `typing.List[typing.Dict[str, typing.Any]]` +- `metrics`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### AccountSummary -Defined in `nexla_sdk/models/users/responses.py:42` +Defined in `nexla_sdk/models/users/responses.py:47` User account summary. Fields: -- `data_sources`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_sets`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_sinks`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_maps`: `typing.Dict[str, typing.Dict[str, int]]` +- `data_sources`: `Dict` +- `data_sets`: `Dict` +- `data_sinks`: `Dict` +- `data_maps`: `Dict` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ActiveConfigView @@ -110,16 +110,16 @@ Features: Fields: -- `gen_ai_usage`: `typing.Optional[str]` -- `active_config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `gen_ai_usage`: `Optional` +- `active_config`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ApprovalDecision @@ -139,15 +139,15 @@ Features: Fields: - `approved`: `bool` -- `reason`: `typing.Optional[str]` +- `reason`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ApprovalRequest @@ -167,22 +167,22 @@ Features: Fields: - `id`: `int` -- `status`: `typing.Optional[str]` -- `request_type`: `typing.Optional[str]` -- `requester_id`: `typing.Optional[int]` -- `resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `reason`: `typing.Optional[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `status`: `Optional` +- `request_type`: `Optional` +- `requester_id`: `Optional` +- `resource_type`: `Optional` +- `resource_id`: `Optional` +- `reason`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### AsyncTask @@ -202,22 +202,22 @@ Features: Fields: - `id`: `int` -- `type`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `started_at`: `typing.Optional[datetime.datetime]` -- `finished_at`: `typing.Optional[datetime.datetime]` -- `result`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `error`: `typing.Optional[str]` +- `type`: `Optional` +- `status`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` +- `started_at`: `Optional` +- `finished_at`: `Optional` +- `result`: `Optional` +- `error`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### AsyncTaskCreate @@ -234,16 +234,16 @@ Fields: Fields: - `type`: `str` -- `priority`: `typing.Optional[int]` -- `arguments`: `typing.Dict[str, typing.Any]` +- `priority`: `Optional` +- `arguments`: `Dict` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### AsyncTaskResult @@ -262,16 +262,16 @@ Features: Fields: -- `task_id`: `typing.Optional[int]` -- `result`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `task_id`: `Optional` +- `result`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### AttributeTransform @@ -292,34 +292,34 @@ Fields: - `id`: `int` - `name`: `str` -- `resource_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `access_roles`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `runtime_data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `description`: `typing.Optional[str]` -- `code_type`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `data_sets`: `typing.Optional[typing.List[int]]` -- `copied_from_id`: `typing.Optional[int]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `tags`: `typing.Optional[typing.List[str]]` +- `resource_type`: `Optional` +- `reusable`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `data_credentials`: `Optional` +- `runtime_data_credentials`: `Optional` +- `description`: `Optional` +- `code_type`: `Optional` +- `output_type`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `managed`: `Optional` +- `data_sets`: `Optional` +- `copied_from_id`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` +- `tags`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### AttributeTransformCreate @@ -344,19 +344,19 @@ Fields: - `code_type`: `str` - `code_encoding`: `str` - `code`: `str` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### AttributeTransformUpdate @@ -375,25 +375,25 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `code_type`: `typing.Optional[str]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `output_type`: `Optional` +- `reusable`: `Optional` +- `code_type`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### AuthConfig @@ -413,41 +413,41 @@ Features: Fields: - `id`: `int` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `uid`: `typing.Optional[str]` -- `protocol`: `typing.Optional[str]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `global_`: `typing.Optional[bool]` -- `auto_create_users_enabled`: `typing.Optional[bool]` -- `name_identifier_format`: `typing.Optional[str]` -- `nexla_base_url`: `typing.Optional[str]` -- `service_entity_id`: `typing.Optional[str]` -- `assertion_consumer_url`: `typing.Optional[str]` -- `logout_url`: `typing.Optional[str]` -- `metadata_url`: `typing.Optional[str]` -- `idp_entity_id`: `typing.Optional[str]` -- `idp_sso_target_url`: `typing.Optional[str]` -- `idp_slo_target_url`: `typing.Optional[str]` -- `idp_cert`: `typing.Optional[str]` -- `security_settings`: `typing.Optional[str]` -- `oidc_domain`: `typing.Optional[str]` -- `oidc_keys_url_key`: `typing.Optional[str]` -- `oidc_token_verify_url`: `typing.Optional[str]` -- `oidc_id_claims`: `typing.Optional[str]` -- `oidc_access_claims`: `typing.Optional[str]` -- `client_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` - -Methods: - -- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` - - Convert model to dictionary. -- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` +- `owner`: `Optional` +- `org`: `Optional` +- `uid`: `Optional` +- `protocol`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `global_`: `Optional` +- `auto_create_users_enabled`: `Optional` +- `name_identifier_format`: `Optional` +- `nexla_base_url`: `Optional` +- `service_entity_id`: `Optional` +- `assertion_consumer_url`: `Optional` +- `logout_url`: `Optional` +- `metadata_url`: `Optional` +- `idp_entity_id`: `Optional` +- `idp_sso_target_url`: `Optional` +- `idp_slo_target_url`: `Optional` +- `idp_cert`: `Optional` +- `security_settings`: `Optional` +- `oidc_domain`: `Optional` +- `oidc_keys_url_key`: `Optional` +- `oidc_token_verify_url`: `Optional` +- `oidc_id_claims`: `Optional` +- `oidc_access_claims`: `Optional` +- `client_config`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### AuthConfigPayload @@ -466,43 +466,43 @@ Features: Fields: -- `id`: `typing.Optional[int]` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` -- `uid`: `typing.Optional[str]` -- `protocol`: `typing.Optional[str]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `global_`: `typing.Optional[bool]` -- `enabled_by_default`: `typing.Optional[bool]` -- `auto_create_users_enabled`: `typing.Optional[bool]` -- `name_identifier_format`: `typing.Optional[str]` -- `nexla_base_url`: `typing.Optional[str]` -- `service_entity_id`: `typing.Optional[str]` -- `assertion_consumer_url`: `typing.Optional[str]` -- `idp_entity_id`: `typing.Optional[str]` -- `idp_sso_target_url`: `typing.Optional[str]` -- `idp_slo_target_url`: `typing.Optional[str]` -- `idp_cert`: `typing.Optional[str]` -- `security_settings`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `metadata`: `typing.Optional[str]` -- `oidc_domain`: `typing.Optional[str]` -- `oidc_keys_url_key`: `typing.Optional[str]` -- `oidc_id_claims`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `oidc_access_claims`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `id`: `Optional` +- `owner_id`: `Optional` +- `org_id`: `Optional` +- `uid`: `Optional` +- `protocol`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `global_`: `Optional` +- `enabled_by_default`: `Optional` +- `auto_create_users_enabled`: `Optional` +- `name_identifier_format`: `Optional` +- `nexla_base_url`: `Optional` +- `service_entity_id`: `Optional` +- `assertion_consumer_url`: `Optional` +- `idp_entity_id`: `Optional` +- `idp_sso_target_url`: `Optional` +- `idp_slo_target_url`: `Optional` +- `idp_cert`: `Optional` +- `security_settings`: `Optional` +- `metadata`: `Optional` +- `oidc_domain`: `Optional` +- `oidc_keys_url_key`: `Optional` +- `oidc_id_claims`: `Optional` +- `oidc_access_claims`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### BaseModel -Defined in `nexla_sdk/models/base.py:8` +Defined in `nexla_sdk/models/base.py:10` Base model class with Pydantic functionality and Nexla API compatibility. @@ -517,10 +517,10 @@ Features: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### BlockedDomain @@ -545,10 +545,10 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### CodeContainer @@ -561,41 +561,41 @@ Fields: - `id`: `int` - `name`: `str` -- `resource_type`: `typing.Optional[str]` -- `ai_function_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `public`: `typing.Optional[bool]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `access_roles`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `runtime_data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `description`: `typing.Optional[str]` -- `code_type`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.code_containers.responses.CodeOperation]]` -- `managed`: `typing.Optional[bool]` -- `data_sets`: `typing.Optional[typing.List[int]]` -- `copied_from_id`: `typing.Optional[int]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `tags`: `typing.Optional[typing.List[str]]` +- `resource_type`: `Optional` +- `ai_function_type`: `Optional` +- `reusable`: `Optional` +- `public`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `data_credentials`: `Optional` +- `runtime_data_credentials`: `Optional` +- `description`: `Optional` +- `code_type`: `Optional` +- `output_type`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `managed`: `Optional` +- `data_sets`: `Optional` +- `copied_from_id`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` +- `tags`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### CodeContainerCreate -Defined in `nexla_sdk/models/code_containers/requests.py:7` +Defined in `nexla_sdk/models/code_containers/requests.py:8` Base model class with Pydantic functionality and Nexla API compatibility. @@ -614,27 +614,27 @@ Fields: - `reusable`: `bool` - `code_type`: `str` - `code_encoding`: `str` -- `code`: `typing.List[nexla_sdk.models.code_containers.responses.CodeOperation]` -- `description`: `typing.Optional[str]` -- `public`: `typing.Optional[bool]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` -- `ai_function_type`: `typing.Optional[str]` +- `code`: `List` +- `description`: `Optional` +- `public`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` +- `ai_function_type`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### CodeContainerUpdate -Defined in `nexla_sdk/models/code_containers/requests.py:25` +Defined in `nexla_sdk/models/code_containers/requests.py:26` Base model class with Pydantic functionality and Nexla API compatibility. @@ -648,32 +648,32 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `code_type`: `typing.Optional[str]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.code_containers.responses.CodeOperation]]` -- `description`: `typing.Optional[str]` -- `public`: `typing.Optional[bool]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` -- `ai_function_type`: `typing.Optional[str]` +- `name`: `Optional` +- `output_type`: `Optional` +- `reusable`: `Optional` +- `code_type`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `description`: `Optional` +- `public`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` +- `ai_function_type`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Connector -Defined in `nexla_sdk/models/common.py:31` +Defined in `nexla_sdk/models/common.py:34` Connector information. @@ -689,15 +689,15 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ConnectorCategory -Defined in `nexla_sdk/models/enums.py:85` +Defined in `nexla_sdk/models/enums.py:93` Connector categories. @@ -713,7 +713,7 @@ Members: ### Credential -Defined in `nexla_sdk/models/credentials/responses.py:8` +Defined in `nexla_sdk/models/credentials/responses.py:10` Data credential response model. @@ -722,38 +722,38 @@ Fields: - `id`: `int` - `name`: `str` - `credentials_type`: `str` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `verified_status`: `typing.Optional[str]` -- `connector`: `typing.Optional[nexla_sdk.models.common.Connector]` -- `description`: `typing.Optional[str]` -- `credentials_version`: `typing.Optional[str]` -- `api_keys`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `credentials_non_secure_data`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `verified_at`: `typing.Optional[datetime.datetime]` -- `copied_from_id`: `typing.Optional[int]` -- `template_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `vendor`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `auth_template`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `referenced_resource_ids`: `typing.Optional[typing.Dict[str, typing.List[int]]]` -- `tags`: `typing.Optional[typing.List[str]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `verified_status`: `Optional` +- `connector`: `Optional` +- `description`: `Optional` +- `credentials_version`: `Optional` +- `api_keys`: `Optional` +- `credentials_non_secure_data`: `Optional` +- `verified_at`: `Optional` +- `copied_from_id`: `Optional` +- `template_config`: `Optional` +- `vendor`: `Optional` +- `auth_template`: `Optional` +- `referenced_resource_ids`: `Optional` +- `tags`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` - `managed`: `bool` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### CredentialCreate -Defined in `nexla_sdk/models/credentials/requests.py:5` +Defined in `nexla_sdk/models/credentials/requests.py:6` Request model for creating a credential. @@ -761,19 +761,19 @@ Fields: - `name`: `str` - `credentials_type`: `str` -- `description`: `typing.Optional[str]` -- `auth_template_id`: `typing.Optional[int]` -- `vendor_id`: `typing.Optional[int]` -- `template_config`: `typing.Optional[typing.Dict]` -- `credentials`: `typing.Optional[typing.Dict]` +- `description`: `Optional` +- `auth_template_id`: `Optional` +- `vendor_id`: `Optional` +- `template_config`: `Optional` +- `credentials`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### CredentialType @@ -839,49 +839,49 @@ Members: ### CredentialUpdate -Defined in `nexla_sdk/models/credentials/requests.py:20` +Defined in `nexla_sdk/models/credentials/requests.py:22` Request model for updating a credential. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `name`: `Optional` +- `description`: `Optional` +- `credentials`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### CustodianUser -Defined in `nexla_sdk/models/organizations/responses.py:68` +Defined in `nexla_sdk/models/organizations/responses.py:74` Simplified user view for organization custodians endpoints. Fields: - `id`: `int` -- `email`: `typing.Optional[str]` -- `full_name`: `typing.Optional[str]` +- `email`: `Optional` +- `full_name`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### CustodiansPayload -Defined in `nexla_sdk/models/marketplace/requests.py:12` +Defined in `nexla_sdk/models/marketplace/requests.py:13` Base model class with Pydantic functionality and Nexla API compatibility. @@ -895,40 +895,40 @@ Features: Fields: -- `custodians`: `typing.List[nexla_sdk.models.marketplace.requests.CustodianRef]` +- `custodians`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DashboardMetrics -Defined in `nexla_sdk/models/metrics/responses.py:19` +Defined in `nexla_sdk/models/metrics/responses.py:23` 24-hour dashboard metrics. Fields: - `status`: `int` -- `metrics`: `typing.Dict[str, typing.Any]` +- `metrics`: `Dict` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DataMapInfo -Defined in `nexla_sdk/models/destinations/responses.py:22` +Defined in `nexla_sdk/models/destinations/responses.py:25` Basic data map information for destination. @@ -938,7 +938,7 @@ Fields: - `owner_id`: `int` - `org_id`: `int` - `name`: `str` -- `description`: `str` +- `description`: `Optional` - `public`: `bool` - `created_at`: `datetime` - `updated_at`: `datetime` @@ -946,10 +946,10 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DataSchema @@ -969,20 +969,20 @@ Features: Fields: - `id`: `int` -- `name`: `typing.Optional[str]` +- `name`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DataSetBrief -Defined in `nexla_sdk/models/sources/responses.py:9` +Defined in `nexla_sdk/models/sources/responses.py:11` Brief dataset information. @@ -991,24 +991,24 @@ Fields: - `id`: `int` - `owner_id`: `int` - `org_id`: `int` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `version`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `name`: `Optional` +- `description`: `Optional` +- `version`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DataSetInfo -Defined in `nexla_sdk/models/destinations/responses.py:10` +Defined in `nexla_sdk/models/destinations/responses.py:12` Basic dataset information for destination. @@ -1016,49 +1016,49 @@ Fields: - `id`: `int` - `name`: `str` -- `description`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `output_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `version`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `description`: `Optional` +- `status`: `Optional` +- `output_schema`: `Optional` +- `version`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DataSinkSimplified -Defined in `nexla_sdk/models/nexsets/responses.py:10` +Defined in `nexla_sdk/models/nexsets/responses.py:12` Simplified data sink information. Fields: - `id`: `int` -- `owner_id`: `int` -- `org_id`: `int` +- `owner_id`: `Optional` +- `org_id`: `Optional` - `name`: `str` -- `status`: `typing.Optional[str]` -- `sink_type`: `typing.Optional[nexla_sdk.models.destinations.enums.DestinationType]` +- `status`: `Optional` +- `sink_type`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DefaultOrg -Defined in `nexla_sdk/models/users/responses.py:7` +Defined in `nexla_sdk/models/users/responses.py:9` User's default organization. @@ -1070,15 +1070,15 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Destination -Defined in `nexla_sdk/models/destinations/responses.py:34` +Defined in `nexla_sdk/models/destinations/responses.py:38` Destination (data sink) response model. @@ -1088,45 +1088,45 @@ Fields: - `name`: `str` - `status`: `str` - `sink_type`: `str` -- `connector_type`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `managed`: `typing.Optional[bool]` -- `connector`: `typing.Optional[nexla_sdk.models.common.Connector]` -- `description`: `typing.Optional[str]` -- `data_set_id`: `typing.Optional[int]` -- `data_map_id`: `typing.Optional[int]` -- `data_source_id`: `typing.Optional[int]` -- `sink_format`: `typing.Optional[nexla_sdk.models.destinations.enums.DestinationFormat]` -- `sink_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `sink_schedule`: `typing.Optional[str]` +- `connector_type`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `managed`: `Optional` +- `connector`: `Optional` +- `description`: `Optional` +- `data_set_id`: `Optional` +- `data_map_id`: `Optional` +- `data_source_id`: `Optional` +- `sink_format`: `Optional` +- `sink_config`: `Optional` +- `sink_schedule`: `Optional` - `in_memory`: `bool` -- `data_set`: `typing.Optional[nexla_sdk.models.destinations.responses.DataSetInfo]` -- `data_map`: `typing.Optional[nexla_sdk.models.destinations.responses.DataMapInfo]` -- `data_credentials_id`: `typing.Optional[int]` -- `data_credentials`: `typing.Optional[nexla_sdk.models.credentials.responses.Credential]` -- `copied_from_id`: `typing.Optional[int]` -- `flow_type`: `typing.Optional[str]` -- `has_template`: `typing.Optional[bool]` -- `vendor_endpoint`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `vendor`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `data_set`: `Optional` +- `data_map`: `Optional` +- `data_credentials_id`: `Optional` +- `data_credentials`: `Optional` +- `copied_from_id`: `Optional` +- `flow_type`: `Optional` +- `has_template`: `Optional` +- `vendor_endpoint`: `Optional` +- `vendor`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DestinationCopyOptions -Defined in `nexla_sdk/models/destinations/requests.py:30` +Defined in `nexla_sdk/models/destinations/requests.py:33` Options for copying a destination. @@ -1134,21 +1134,21 @@ Fields: - `reuse_data_credentials`: `bool` - `copy_access_controls`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DestinationCreate -Defined in `nexla_sdk/models/destinations/requests.py:5` +Defined in `nexla_sdk/models/destinations/requests.py:6` Request model for creating a destination. @@ -1158,23 +1158,23 @@ Fields: - `sink_type`: `str` - `data_credentials_id`: `int` - `data_set_id`: `int` -- `description`: `typing.Optional[str]` -- `sink_config`: `typing.Optional[typing.Dict]` -- `vendor_endpoint_id`: `typing.Optional[int]` -- `template_config`: `typing.Optional[typing.Dict]` +- `description`: `Optional` +- `sink_config`: `Optional` +- `vendor_endpoint_id`: `Optional` +- `template_config`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DestinationFormat -Defined in `nexla_sdk/models/destinations/enums.py:58` +Defined in `nexla_sdk/models/destinations/enums.py:89` Output format for destinations. @@ -1204,7 +1204,7 @@ Members: ### DestinationType -Defined in `nexla_sdk/models/destinations/enums.py:13` +Defined in `nexla_sdk/models/destinations/enums.py:14` Supported sink types. @@ -1213,51 +1213,80 @@ Members: - `S3` = `s3` - `GCS` = `gcs` - `AZURE_BLB` = `azure_blb` +- `AZURE_DATA_LAKE` = `azure_data_lake` - `FTP` = `ftp` - `DROPBOX` = `dropbox` - `BOX` = `box` - `GDRIVE` = `gdrive` - `SHAREPOINT` = `sharepoint` +- `MIN_IO_S3` = `min_io_s3` +- `WEBDAV` = `webdav` - `MYSQL` = `mysql` - `POSTGRES` = `postgres` +- `SUPABASE` = `supabase` - `SQLSERVER` = `sqlserver` - `ORACLE` = `oracle` +- `ORACLE_AUTONOMOUS` = `oracle_autonomous` - `REDSHIFT` = `redshift` - `SNOWFLAKE` = `snowflake` +- `SNOWFLAKE_DCR` = `snowflake_dcr` - `BIGQUERY` = `bigquery` - `DATABRICKS` = `databricks` +- `AS400` = `as400` +- `AWS_ATHENA` = `aws_athena` +- `AZURE_SYNAPSE` = `azure_synapse` +- `CLOUDSQL_MYSQL` = `cloudsql_mysql` +- `CLOUDSQL_POSTGRES` = `cloudsql_postgres` +- `CLOUDSQL_SQLSERVER` = `cloudsql_sqlserver` +- `DB2` = `db2` +- `FIREBOLT` = `firebolt` +- `GCP_ALLOYDB` = `gcp_alloydb` +- `GCP_SPANNER` = `gcp_spanner` +- `HANA_JDBC` = `hana_jdbc` +- `HIVE` = `hive` +- `NETSUITE_JDBC` = `netsuite_jdbc` +- `SYBASE` = `sybase` +- `TERADATA` = `teradata` +- `DELTA_LAKE_AZURE_BLB` = `delta_lake_azure_blb` +- `DELTA_LAKE_AZURE_DATA_LAKE` = `delta_lake_azure_data_lake` +- `DELTA_LAKE_S3` = `delta_lake_s3` +- `S3_ICEBERG` = `s3_iceberg` - `MONGO` = `mongo` - `DYNAMODB` = `dynamodb` - `FIREBASE` = `firebase` - `KAFKA` = `kafka` - `CONFLUENT_KAFKA` = `confluent_kafka` - `GOOGLE_PUBSUB` = `google_pubsub` +- `JMS` = `jms` +- `TIBCO` = `tibco` - `REST` = `rest` +- `SOAP` = `soap` - `EMAIL` = `email` - `DATA_MAP` = `data_map` +- `NEXLA_MONITOR` = `nexla_monitor` - `PINECONE` = `pinecone` ### DestinationUpdate -Defined in `nexla_sdk/models/destinations/requests.py:21` +Defined in `nexla_sdk/models/destinations/requests.py:23` Request model for updating a destination. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `sink_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` +- `name`: `Optional` +- `description`: `Optional` +- `sink_config`: `Optional` +- `data_credentials_id`: `Optional` +- `data_set_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DocContainer @@ -1277,15 +1306,39 @@ Features: Fields: - `id`: `int` -- `name`: `typing.Optional[str]` +- `name`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### DocsRecommendation + +Defined in `nexla_sdk/models/flows/responses.py:152` + +Response from docs_recommendation() with AI-generated documentation. + +Attributes: + recommendation: The AI-generated documentation suggestion. + status: Status of the recommendation request. + +Fields: + +- `recommendation`: `Optional` +- `status`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### DownloadLink @@ -1305,20 +1358,20 @@ Features: Fields: - `url`: `str` -- `expires_at`: `typing.Optional[datetime.datetime]` +- `expires_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### FlowCopyOptions -Defined in `nexla_sdk/models/flows/requests.py:5` +Defined in `nexla_sdk/models/flows/requests.py:6` Options for copying a flow. @@ -1327,48 +1380,150 @@ Fields: - `reuse_data_credentials`: `bool` - `copy_access_controls`: `bool` - `copy_dependent_data_flows`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### FlowElements -Defined in `nexla_sdk/models/flows/responses.py:22` +Defined in `nexla_sdk/models/flows/responses.py:164` Flow elements containing all resources. Fields: -- `code_containers`: `typing.List[typing.Dict[str, typing.Any]]` -- `data_sources`: `typing.List[nexla_sdk.models.sources.responses.Source]` -- `data_sets`: `typing.List[nexla_sdk.models.nexsets.responses.Nexset]` -- `data_sinks`: `typing.List[nexla_sdk.models.destinations.responses.Destination]` -- `data_credentials`: `typing.List[nexla_sdk.models.credentials.responses.Credential]` -- `shared_data_sets`: `typing.List[typing.Dict[str, typing.Any]]` -- `orgs`: `typing.List[typing.Dict[str, typing.Any]]` -- `users`: `typing.List[typing.Dict[str, typing.Any]]` -- `projects`: `typing.List[typing.Dict[str, typing.Any]]` +- `code_containers`: `List` +- `data_sources`: `List` +- `data_sets`: `List` +- `data_sinks`: `List` +- `data_credentials`: `List` +- `shared_data_sets`: `List` +- `orgs`: `List` +- `users`: `List` +- `projects`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### FlowLogEntry + +Defined in `nexla_sdk/models/flows/responses.py:25` + +A single flow execution log entry. + +Fields: + +- `timestamp`: `Optional` +- `level`: `Optional` +- `message`: `Optional` +- `log_type`: `Optional` +- `resource_id`: `Optional` +- `resource_type`: `Optional` +- `run_id`: `Optional` +- `details`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### FlowLogsMeta + +Defined in `nexla_sdk/models/flows/responses.py:53` + +Metadata for flow logs pagination. + +The live API also returns run context fields (org_id, run_id) in logs.meta. + +Fields: + +- `current_page`: `Optional` +- `page_count`: `Optional` +- `total_count`: `Optional` +- `org_id`: `Optional` +- `run_id`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### FlowLogsResponse + +Defined in `nexla_sdk/models/flows/responses.py:82` + +Response from get_logs() containing flow execution logs. + +Attributes: + status: Status code of the response (200 for success). + message: Status message ("Ok" for success). + logs: List of log entries. + meta: Pagination metadata. + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `logs`: `List` +- `meta`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### FlowMetricData + +Defined in `nexla_sdk/models/flows/responses.py:113` + +Flow metric data for a resource. + +Fields: + +- `records`: `Optional` +- `size`: `Optional` +- `errors`: `Optional` +- `run_id`: `Optional` +- `reporting_date`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### FlowMetrics -Defined in `nexla_sdk/models/flows/responses.py:12` +Defined in `nexla_sdk/models/flows/responses.py:14` Flow metrics information. @@ -1384,15 +1539,82 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### FlowMetricsApiResponse + +Defined in `nexla_sdk/models/flows/responses.py:138` + +Response from get_metrics() containing flow metrics. + +Attributes: + status: Status code of the response (200 for success). + message: Status message ("Ok" for success). + metrics: Metrics data including resource-keyed data and pagination. + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `metrics`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### FlowMetricsData + +Defined in `nexla_sdk/models/flows/responses.py:131` + +Flow metrics data container. + +Fields: + +- `data`: `Optional` +- `meta`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### FlowMetricsMeta + +Defined in `nexla_sdk/models/flows/responses.py:123` + +Metadata for flow metrics pagination. + +Fields: + +- `current_page`: `Optional` +- `page_count`: `Optional` +- `total_count`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### FlowNode -Defined in `nexla_sdk/models/common.py:61` +Defined in `nexla_sdk/models/common.py:66` Flow node in a data pipeline. @@ -1400,59 +1622,59 @@ Fields: - `id`: `int` - `origin_node_id`: `int` -- `parent_node_id`: `typing.Optional[int]` -- `data_source_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` -- `data_sink_id`: `typing.Optional[int]` -- `status`: `typing.Optional[str]` -- `project_id`: `typing.Optional[int]` -- `flow_type`: `typing.Optional[str]` -- `ingestion_mode`: `typing.Optional[str]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `children`: `typing.Optional[typing.List[nexla_sdk.models.common.FlowNode]]` +- `parent_node_id`: `Optional` +- `data_source_id`: `Optional` +- `data_set_id`: `Optional` +- `data_sink_id`: `Optional` +- `status`: `Optional` +- `project_id`: `Optional` +- `flow_type`: `Optional` +- `ingestion_mode`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `children`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### FlowResponse -Defined in `nexla_sdk/models/flows/responses.py:35` +Defined in `nexla_sdk/models/flows/responses.py:178` Flow response model. Fields: -- `flows`: `typing.List[nexla_sdk.models.common.FlowNode]` -- `code_containers`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `data_sources`: `typing.Optional[typing.List[nexla_sdk.models.sources.responses.Source]]` -- `data_sets`: `typing.Optional[typing.List[nexla_sdk.models.nexsets.responses.Nexset]]` -- `data_sinks`: `typing.Optional[typing.List[nexla_sdk.models.destinations.responses.Destination]]` -- `data_credentials`: `typing.Optional[typing.List[nexla_sdk.models.credentials.responses.Credential]]` -- `shared_data_sets`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `orgs`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `users`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `projects`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `metrics`: `typing.Optional[typing.List[nexla_sdk.models.flows.responses.FlowMetrics]]` +- `flows`: `List` +- `code_containers`: `Optional` +- `data_sources`: `Optional` +- `data_sets`: `Optional` +- `data_sinks`: `Optional` +- `data_credentials`: `Optional` +- `shared_data_sets`: `Optional` +- `orgs`: `Optional` +- `users`: `Optional` +- `projects`: `Optional` +- `metrics`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### FlowType -Defined in `nexla_sdk/models/sources/enums.py:68` +Defined in `nexla_sdk/models/sources/enums.py:72` Flow processing types. @@ -1479,19 +1701,19 @@ Features: Fields: - `id`: `int` -- `name`: `typing.Optional[str]` -- `provider`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `name`: `Optional` +- `provider`: `Optional` +- `config`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### GenAiConfigCreatePayload @@ -1512,17 +1734,17 @@ Fields: - `name`: `str` - `type`: `str` -- `config`: `typing.Dict[str, typing.Any]` +- `config`: `Dict` - `data_credentials_id`: `int` -- `description`: `typing.Optional[str]` +- `description`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### GenAiConfigPayload @@ -1541,20 +1763,20 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `type`: `typing.Optional[str]` -- `data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `description`: `Optional` +- `status`: `Optional` +- `config`: `Optional` +- `type`: `Optional` +- `data_credentials_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### GenAiOrgSetting @@ -1574,20 +1796,20 @@ Features: Fields: - `id`: `int` -- `org_id`: `typing.Optional[int]` -- `gen_ai_usage`: `typing.Optional[str]` -- `active_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `configs`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `org_id`: `Optional` +- `gen_ai_usage`: `Optional` +- `active_config`: `Optional` +- `configs`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### GenAiOrgSettingPayload @@ -1606,22 +1828,22 @@ Features: Fields: -- `org_id`: `typing.Optional[int]` +- `org_id`: `Optional` - `gen_ai_config_id`: `int` - `gen_ai_usage`: `str` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### IngestMethod -Defined in `nexla_sdk/models/sources/enums.py:59` +Defined in `nexla_sdk/models/sources/enums.py:62` Data ingestion methods. @@ -1635,7 +1857,7 @@ Members: ### LogEntry -Defined in `nexla_sdk/models/common.py:41` +Defined in `nexla_sdk/models/common.py:45` Audit log entry. @@ -1645,31 +1867,31 @@ Fields: - `item_type`: `str` - `item_id`: `int` - `event`: `str` -- `change_summary`: `typing.List[str]` -- `object_changes`: `typing.Dict[str, typing.List[typing.Any]]` +- `change_summary`: `List` +- `object_changes`: `Dict` - `request_ip`: `str` - `request_user_agent`: `str` - `request_url`: `str` -- `user`: `typing.Dict[str, typing.Any]` +- `user`: `Dict` - `org_id`: `int` - `owner_id`: `int` - `owner_email`: `str` - `created_at`: `datetime` -- `association_resource`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `impersonator_id`: `typing.Optional[str]` +- `association_resource`: `Optional` +- `impersonator_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Lookup -Defined in `nexla_sdk/models/lookups/responses.py:8` +Defined in `nexla_sdk/models/lookups/responses.py:10` Lookup (data map) response model. @@ -1681,34 +1903,34 @@ Fields: - `map_primary_key`: `str` - `owner`: `Owner` - `org`: `Organization` -- `access_roles`: `typing.List[str]` +- `access_roles`: `List` - `public`: `bool` - `managed`: `bool` - `data_type`: `str` - `emit_data_default`: `bool` - `use_versioning`: `bool` -- `data_format`: `typing.Optional[str]` -- `data_sink_id`: `typing.Optional[int]` -- `data_defaults`: `typing.Dict[str, typing.Any]` -- `data_set_id`: `typing.Optional[int]` -- `map_entry_count`: `typing.Optional[int]` -- `map_entry_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `data_format`: `Optional` +- `data_sink_id`: `Optional` +- `data_defaults`: `Dict` +- `data_set_id`: `Optional` +- `map_entry_count`: `Optional` +- `map_entry_schema`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### LookupCreate -Defined in `nexla_sdk/models/lookups/requests.py:6` +Defined in `nexla_sdk/models/lookups/requests.py:8` Request model for creating a lookup. @@ -1717,67 +1939,67 @@ Fields: - `name`: `str` - `data_type`: `str` - `map_primary_key`: `str` -- `description`: `typing.Optional[str]` -- `data_defaults`: `typing.Dict[str, typing.Any]` +- `description`: `Optional` +- `data_defaults`: `Dict` - `emit_data_default`: `bool` -- `data_map`: `typing.Optional[typing.List[typing.Dict[str, typing.Any]]]` -- `tags`: `typing.List[str]` +- `data_map`: `Optional` +- `tags`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### LookupEntriesUpsert -Defined in `nexla_sdk/models/lookups/requests.py:28` +Defined in `nexla_sdk/models/lookups/requests.py:32` Request model for upserting lookup entries. Fields: -- `entries`: `typing.List[typing.Dict[str, typing.Any]]` +- `entries`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### LookupUpdate -Defined in `nexla_sdk/models/lookups/requests.py:18` +Defined in `nexla_sdk/models/lookups/requests.py:21` Request model for updating a lookup. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `map_primary_key`: `typing.Optional[str]` -- `data_defaults`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `emit_data_default`: `typing.Optional[bool]` -- `tags`: `typing.Optional[typing.List[str]]` +- `name`: `Optional` +- `description`: `Optional` +- `map_primary_key`: `Optional` +- `data_defaults`: `Optional` +- `emit_data_default`: `Optional` +- `tags`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### MarketplaceDomain -Defined in `nexla_sdk/models/marketplace/responses.py:8` +Defined in `nexla_sdk/models/marketplace/responses.py:7` Base model class with Pydantic functionality and Nexla API compatibility. @@ -1793,24 +2015,24 @@ Fields: - `id`: `int` - `name`: `str` -- `slug`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `org_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `slug`: `Optional` +- `description`: `Optional` +- `org_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### MarketplaceDomainCreate -Defined in `nexla_sdk/models/marketplace/requests.py:16` +Defined in `nexla_sdk/models/marketplace/requests.py:17` Base model class with Pydantic functionality and Nexla API compatibility. @@ -1824,25 +2046,25 @@ Features: Fields: -- `org_id`: `typing.Optional[int]` -- `owner_id`: `typing.Optional[int]` +- `org_id`: `Optional` +- `owner_id`: `Optional` - `name`: `str` -- `description`: `typing.Optional[str]` -- `parent_id`: `typing.Optional[int]` -- `custodians`: `typing.Optional[nexla_sdk.models.marketplace.requests.CustodiansPayload]` +- `description`: `Optional` +- `parent_id`: `Optional` +- `custodians`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### MarketplaceDomainsItem -Defined in `nexla_sdk/models/marketplace/responses.py:18` +Defined in `nexla_sdk/models/marketplace/responses.py:17` Base model class with Pydantic functionality and Nexla API compatibility. @@ -1857,24 +2079,24 @@ Features: Fields: - `id`: `int` -- `domain_id`: `typing.Optional[int]` -- `resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `domain_id`: `Optional` +- `resource_type`: `Optional` +- `resource_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### MarketplaceDomainsItemCreate -Defined in `nexla_sdk/models/marketplace/requests.py:25` +Defined in `nexla_sdk/models/marketplace/requests.py:26` Base model class with Pydantic functionality and Nexla API compatibility. @@ -1889,118 +2111,118 @@ Features: Fields: - `name`: `str` -- `description`: `typing.Optional[str]` +- `description`: `Optional` - `data_set_id`: `int` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### MetricsByRunResponse -Defined in `nexla_sdk/models/metrics/responses.py:49` +Defined in `nexla_sdk/models/metrics/responses.py:57` Metrics by run response with pagination. Fields: - `status`: `int` -- `metrics`: `typing.Dict[str, typing.Any]` +- `metrics`: `Dict` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### MetricsResponse -Defined in `nexla_sdk/models/metrics/responses.py:43` +Defined in `nexla_sdk/models/metrics/responses.py:50` Generic metrics response. Fields: - `status`: `int` -- `metrics`: `typing.List[typing.Any]` +- `metrics`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Nexset -Defined in `nexla_sdk/models/nexsets/responses.py:20` +Defined in `nexla_sdk/models/nexsets/responses.py:23` Nexset (data set) response model. Fields: - `id`: `int` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `flow_type`: `typing.Optional[str]` -- `data_source_id`: `typing.Optional[int]` -- `data_source`: `typing.Optional[nexla_sdk.models.sources.responses.Source]` -- `parent_data_sets`: `typing.List[nexla_sdk.models.sources.responses.DataSetBrief]` -- `data_sinks`: `typing.List[nexla_sdk.models.nexsets.responses.DataSinkSimplified]` -- `transform_id`: `typing.Optional[int]` -- `output_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `copied_from_id`: `typing.Optional[int]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `name`: `Optional` +- `description`: `Optional` +- `status`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `flow_type`: `Optional` +- `data_source_id`: `Optional` +- `data_source`: `Optional` +- `parent_data_sets`: `List` +- `data_sinks`: `List` +- `transform_id`: `Optional` +- `output_schema`: `Optional` +- `copied_from_id`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NexsetCopyOptions -Defined in `nexla_sdk/models/nexsets/requests.py:41` +Defined in `nexla_sdk/models/nexsets/requests.py:46` Options for copying a nexset. Fields: - `copy_access_controls`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NexsetCreate -Defined in `nexla_sdk/models/nexsets/requests.py:7` +Defined in `nexla_sdk/models/nexsets/requests.py:10` Request model for creating a nexset. @@ -2009,43 +2231,43 @@ Fields: - `name`: `str` - `parent_data_set_id`: `int` - `has_custom_transform`: `bool` -- `transform`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `transform_id`: `typing.Optional[int]` -- `description`: `typing.Optional[str]` -- `output_schema_annotations`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `transform`: `Optional` +- `transform_id`: `Optional` +- `description`: `Optional` +- `output_schema_annotations`: `Optional` - `output_schema_validation_enabled`: `bool` -- `output_validation_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_sinks`: `typing.List[typing.Union[int, typing.Dict[str, typing.Any]]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` +- `output_validation_schema`: `Optional` +- `data_sinks`: `List` +- `custom_config`: `Optional` +- `tags`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NexsetSample -Defined in `nexla_sdk/models/nexsets/responses.py:43` +Defined in `nexla_sdk/models/nexsets/responses.py:47` Nexset sample record. Fields: -- `raw_message`: `typing.Dict[str, typing.Any]` -- `nexla_metadata`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `raw_message`: `Dict` +- `nexla_metadata`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NexsetStatus @@ -2065,36 +2287,36 @@ Members: ### NexsetUpdate -Defined in `nexla_sdk/models/nexsets/requests.py:26` +Defined in `nexla_sdk/models/nexsets/requests.py:30` Request model for updating a nexset. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `has_custom_transform`: `typing.Optional[bool]` -- `transform`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `transform_id`: `typing.Optional[int]` -- `output_schema_annotations`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `output_schema_validation_enabled`: `typing.Optional[bool]` -- `output_validation_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_sinks`: `typing.Optional[typing.List[typing.Union[int, typing.Dict[str, typing.Any]]]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.Optional[typing.List[str]]` +- `name`: `Optional` +- `description`: `Optional` +- `has_custom_transform`: `Optional` +- `transform`: `Optional` +- `transform_id`: `Optional` +- `output_schema_annotations`: `Optional` +- `output_schema_validation_enabled`: `Optional` +- `output_validation_schema`: `Optional` +- `data_sinks`: `Optional` +- `custom_config`: `Optional` +- `tags`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Notification -Defined in `nexla_sdk/models/notifications/responses.py:8` +Defined in `nexla_sdk/models/notifications/responses.py:10` Notification response model. @@ -2103,28 +2325,28 @@ Fields: - `id`: `int` - `owner`: `Owner` - `org`: `Organization` -- `access_roles`: `typing.List[str]` +- `access_roles`: `List` - `level`: `str` -- `resource_id`: `int` +- `resource_id`: `Optional` - `resource_type`: `str` - `message_id`: `int` - `message`: `str` -- `read_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `read_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NotificationChannel -Defined in `nexla_sdk/models/enums.py:53` +Defined in `nexla_sdk/models/enums.py:57` Notification delivery channels. @@ -2138,7 +2360,7 @@ Members: ### NotificationChannelSetting -Defined in `nexla_sdk/models/notifications/responses.py:37` +Defined in `nexla_sdk/models/notifications/responses.py:41` Notification channel configuration. @@ -2148,60 +2370,60 @@ Fields: - `owner_id`: `int` - `org_id`: `int` - `channel`: `str` -- `config`: `typing.Dict[str, typing.Any]` +- `config`: `Dict` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NotificationChannelSettingCreate -Defined in `nexla_sdk/models/notifications/requests.py:6` +Defined in `nexla_sdk/models/notifications/requests.py:8` Request model for creating notification channel setting. Fields: - `channel`: `str` -- `config`: `typing.Dict[str, typing.Any]` +- `config`: `Dict` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NotificationChannelSettingUpdate -Defined in `nexla_sdk/models/notifications/requests.py:12` +Defined in `nexla_sdk/models/notifications/requests.py:15` Request model for updating notification channel setting. Fields: -- `channel`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `channel`: `Optional` +- `config`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NotificationCount -Defined in `nexla_sdk/models/notifications/responses.py:67` +Defined in `nexla_sdk/models/notifications/responses.py:73` Notification count response. @@ -2212,15 +2434,15 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NotificationLevel -Defined in `nexla_sdk/models/enums.py:43` +Defined in `nexla_sdk/models/enums.py:46` Notification levels. @@ -2235,7 +2457,7 @@ Members: ### NotificationSetting -Defined in `nexla_sdk/models/notifications/responses.py:46` +Defined in `nexla_sdk/models/notifications/responses.py:51` Notification setting configuration. @@ -2246,7 +2468,7 @@ Fields: - `owner_id`: `int` - `channel`: `str` - `notification_resource_type`: `str` -- `resource_id`: `int` +- `resource_id`: `Optional` - `status`: `str` - `notification_type_id`: `int` - `name`: `str` @@ -2255,21 +2477,21 @@ Fields: - `category`: `str` - `event_type`: `str` - `resource_type`: `str` -- `config`: `typing.Dict[str, typing.Any]` -- `priority`: `typing.Optional[int]` +- `config`: `Dict` +- `priority`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NotificationSettingCreate -Defined in `nexla_sdk/models/notifications/requests.py:18` +Defined in `nexla_sdk/models/notifications/requests.py:22` Request model for creating notification setting. @@ -2277,50 +2499,50 @@ Fields: - `channel`: `str` - `notification_type_id`: `int` -- `status`: `typing.Optional[str]` -- `config`: `typing.Dict[str, typing.Any]` -- `notification_resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `notification_channel_setting_id`: `typing.Optional[int]` +- `status`: `Optional` +- `config`: `Dict` +- `notification_resource_type`: `Optional` +- `resource_id`: `Optional` +- `notification_channel_setting_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NotificationSettingUpdate -Defined in `nexla_sdk/models/notifications/requests.py:29` +Defined in `nexla_sdk/models/notifications/requests.py:34` Request model for updating notification setting. Fields: -- `channel`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `notification_resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `checked`: `typing.Optional[bool]` -- `notification_channel_setting_id`: `typing.Optional[int]` -- `notification_type_id`: `typing.Optional[int]` +- `channel`: `Optional` +- `status`: `Optional` +- `config`: `Optional` +- `notification_resource_type`: `Optional` +- `resource_id`: `Optional` +- `checked`: `Optional` +- `notification_channel_setting_id`: `Optional` +- `notification_type_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### NotificationType -Defined in `nexla_sdk/models/notifications/responses.py:25` +Defined in `nexla_sdk/models/notifications/responses.py:28` Notification type information. @@ -2338,58 +2560,58 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrgAccessorRequest -Defined in `nexla_sdk/models/access/requests.py:25` +Defined in `nexla_sdk/models/access/requests.py:31` Request model for ORG type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the organization -- `client_identifier`: `typing.Optional[str]` — Client identifier for the organization -- `email_domain`: `typing.Optional[str]` — Email domain for the organization -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the organization +- `client_identifier`: `Optional` — Client identifier for the organization +- `email_domain`: `Optional` — Email domain for the organization +- `access_roles`: `List` — List of access roles Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrgAccessorResponse -Defined in `nexla_sdk/models/access/responses.py:30` +Defined in `nexla_sdk/models/access/responses.py:36` Response model for ORG type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the organization -- `client_identifier`: `typing.Optional[str]` — Client identifier for the organization -- `email_domain`: `typing.Optional[str]` — Email domain for the organization -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles -- `created_at`: `typing.Optional[datetime.datetime]` — Creation timestamp -- `updated_at`: `typing.Optional[datetime.datetime]` — Last update timestamp +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the organization +- `client_identifier`: `Optional` — Client identifier for the organization +- `email_domain`: `Optional` — Email domain for the organization +- `access_roles`: `List` — List of access roles +- `created_at`: `Optional` — Creation timestamp +- `updated_at`: `Optional` — Last update timestamp Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrgCustodianRef @@ -2400,40 +2622,40 @@ Reference to a user for organization custodians (by id or email). Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrgCustodiansPayload -Defined in `nexla_sdk/models/organizations/custodians.py:12` +Defined in `nexla_sdk/models/organizations/custodians.py:13` Payload for organization custodians endpoints. Fields: -- `custodians`: `typing.List[nexla_sdk.models.organizations.custodians.OrgCustodianRef]` +- `custodians`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrgMember -Defined in `nexla_sdk/models/organizations/responses.py:49` +Defined in `nexla_sdk/models/organizations/responses.py:53` Organization member information. @@ -2443,83 +2665,83 @@ Fields: - `full_name`: `str` - `email`: `str` - `is_admin`: `bool` -- `access_role`: `typing.Optional[typing.List[str]]` +- `access_role`: `Optional` - `org_membership_status`: `str` - `user_status`: `str` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrgMemberDelete -Defined in `nexla_sdk/models/organizations/requests.py:65` +Defined in `nexla_sdk/models/organizations/requests.py:73` Request model for deleting org members. Fields: -- `members`: `typing.List[nexla_sdk.models.organizations.requests.OrgMemberDeleteRequest]` +- `members`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrgMemberList -Defined in `nexla_sdk/models/organizations/requests.py:53` +Defined in `nexla_sdk/models/organizations/requests.py:59` Request model for updating org members. Fields: -- `members`: `typing.List[nexla_sdk.models.organizations.requests.OrgMemberUpdate]` +- `members`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrgMemberUpdate -Defined in `nexla_sdk/models/organizations/requests.py:44` +Defined in `nexla_sdk/models/organizations/requests.py:49` Request model for updating org member. Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` -- `full_name`: `typing.Optional[str]` -- `admin`: `typing.Optional[bool]` -- `access_role`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` +- `full_name`: `Optional` +- `admin`: `Optional` +- `access_role`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrgMembership -Defined in `nexla_sdk/models/users/responses.py:13` +Defined in `nexla_sdk/models/users/responses.py:16` Organization membership details. @@ -2527,22 +2749,22 @@ Fields: - `id`: `int` - `name`: `str` -- `is_admin`: `typing.Optional[bool]` +- `is_admin`: `Optional` - `org_membership_status`: `str` -- `api_key`: `typing.Optional[str]` +- `api_key`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrgMembershipStatus -Defined in `nexla_sdk/models/enums.py:79` +Defined in `nexla_sdk/models/enums.py:86` Organization membership status. @@ -2553,7 +2775,7 @@ Members: ### OrgTier -Defined in `nexla_sdk/models/organizations/responses.py:8` +Defined in `nexla_sdk/models/organizations/responses.py:10` Organization tier information. @@ -2565,20 +2787,20 @@ Fields: - `record_count_limit`: `int` - `record_count_limit_time`: `str` - `data_source_count_limit`: `int` -- `trial_period_days`: `typing.Optional[int]` +- `trial_period_days`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Organization -Defined in `nexla_sdk/models/common.py:14` +Defined in `nexla_sdk/models/common.py:16` Organization details. @@ -2586,56 +2808,56 @@ Fields: - `id`: `int` - `name`: `str` -- `email_domain`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `client_identifier`: `typing.Optional[str]` -- `org_webhook_host`: `typing.Optional[str]` -- `cluster_id`: `typing.Optional[int]` -- `new_cluster_id`: `typing.Optional[int]` -- `cluster_status`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `self_signup`: `typing.Optional[bool]` -- `features_enabled`: `typing.Optional[typing.List[str]]` -- `org_tier`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `email_domain`: `Optional` +- `email`: `Optional` +- `client_identifier`: `Optional` +- `org_webhook_host`: `Optional` +- `cluster_id`: `Optional` +- `new_cluster_id`: `Optional` +- `cluster_status`: `Optional` +- `status`: `Optional` +- `self_signup`: `Optional` +- `features_enabled`: `Optional` +- `org_tier`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OrganizationUpdate -Defined in `nexla_sdk/models/organizations/requests.py:32` +Defined in `nexla_sdk/models/organizations/requests.py:36` Request model for updating an organization. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.organizations.requests.OrgOwnerRequest]` -- `owner_id`: `typing.Optional[int]` -- `billing_owner`: `typing.Optional[nexla_sdk.models.organizations.requests.OrgOwnerRequest]` -- `billing_owner_id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` -- `members`: `typing.Optional[typing.List[nexla_sdk.models.organizations.requests.OrgMemberCreateRequest]]` +- `name`: `Optional` +- `description`: `Optional` +- `owner`: `Optional` +- `owner_id`: `Optional` +- `billing_owner`: `Optional` +- `billing_owner_id`: `Optional` +- `email`: `Optional` +- `members`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### OutputType -Defined in `nexla_sdk/models/nexsets/enums.py:23` +Defined in `nexla_sdk/models/nexsets/enums.py:25` Transform output types. @@ -2647,7 +2869,7 @@ Members: ### Owner -Defined in `nexla_sdk/models/common.py:6` +Defined in `nexla_sdk/models/common.py:7` User who owns a resource. @@ -2656,39 +2878,39 @@ Fields: - `id`: `int` - `full_name`: `str` - `email`: `str` -- `email_verified_at`: `typing.Optional[datetime.datetime]` +- `email_verified_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ProbeSampleRequest -Defined in `nexla_sdk/models/credentials/requests.py:35` +Defined in `nexla_sdk/models/credentials/requests.py:39` Request for previewing connector content. Fields: -- `path`: `typing.Optional[str]` +- `path`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ProbeSampleResponse -Defined in `nexla_sdk/models/credentials/responses.py:61` +Defined in `nexla_sdk/models/credentials/responses.py:65` Response from credential probe sample operation. @@ -2697,42 +2919,42 @@ Fields: - `status`: `str` - `message`: `str` - `connection_type`: `str` -- `output`: `typing.Dict[str, typing.Any]` +- `output`: `Dict` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ProbeTreeRequest -Defined in `nexla_sdk/models/credentials/requests.py:27` +Defined in `nexla_sdk/models/credentials/requests.py:30` Request for probing storage structure. Fields: - `depth`: `int` -- `path`: `typing.Optional[str]` -- `database`: `typing.Optional[str]` -- `table`: `typing.Optional[str]` +- `path`: `Optional` +- `database`: `Optional` +- `table`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ProbeTreeResponse -Defined in `nexla_sdk/models/credentials/responses.py:53` +Defined in `nexla_sdk/models/credentials/responses.py:56` Response from credential probe tree operation. @@ -2741,20 +2963,20 @@ Fields: - `status`: `str` - `message`: `str` - `connection_type`: `str` -- `object`: `typing.Dict[str, typing.Any]` +- `object`: `Dict` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Project -Defined in `nexla_sdk/models/projects/responses.py:21` +Defined in `nexla_sdk/models/projects/responses.py:24` Project response model. @@ -2765,50 +2987,50 @@ Fields: - `org`: `Organization` - `name`: `str` - `description`: `str` -- `access_roles`: `typing.List[str]` -- `data_flows`: `typing.List[nexla_sdk.models.projects.responses.ProjectDataFlow]` -- `flows`: `typing.List[nexla_sdk.models.projects.responses.ProjectDataFlow]` -- `client_identifier`: `typing.Optional[str]` -- `client_url`: `typing.Optional[str]` -- `flows_count`: `typing.Optional[int]` -- `tags`: `typing.List[str]` -- `copied_from_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `access_roles`: `List` +- `data_flows`: `List` +- `flows`: `List` +- `client_identifier`: `Optional` +- `client_url`: `Optional` +- `flows_count`: `Optional` +- `tags`: `List` +- `copied_from_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ProjectCreate -Defined in `nexla_sdk/models/projects/requests.py:12` +Defined in `nexla_sdk/models/projects/requests.py:15` Request model for creating a project. Fields: - `name`: `str` -- `description`: `typing.Optional[str]` -- `data_flows`: `typing.List[nexla_sdk.models.projects.requests.ProjectFlowIdentifier]` +- `description`: `Optional` +- `data_flows`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ProjectDataFlow -Defined in `nexla_sdk/models/projects/responses.py:8` +Defined in `nexla_sdk/models/projects/responses.py:10` Project data flow information. @@ -2816,87 +3038,130 @@ Fields: - `id`: `int` - `project_id`: `int` -- `data_source_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` -- `data_sink_id`: `typing.Optional[int]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `data_source_id`: `Optional` +- `data_set_id`: `Optional` +- `data_sink_id`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ProjectFlowIdentifier -Defined in `nexla_sdk/models/projects/requests.py:6` +Defined in `nexla_sdk/models/projects/requests.py:8` Flow identifier for project. Fields: -- `data_source_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` +- `data_source_id`: `Optional` +- `data_set_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ProjectFlowList -Defined in `nexla_sdk/models/projects/requests.py:26` +Defined in `nexla_sdk/models/projects/requests.py:31` Request model for managing project flows. Fields: -- `data_flows`: `typing.Optional[typing.List[nexla_sdk.models.projects.requests.ProjectFlowIdentifier]]` -- `flows`: `typing.Optional[typing.List[int]]` +- `data_flows`: `Optional` +- `flows`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ProjectUpdate -Defined in `nexla_sdk/models/projects/requests.py:19` +Defined in `nexla_sdk/models/projects/requests.py:23` Request model for updating a project. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `data_flows`: `typing.Optional[typing.List[nexla_sdk.models.projects.requests.ProjectFlowIdentifier]]` +- `name`: `Optional` +- `description`: `Optional` +- `data_flows`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### ResourceFlowLogsResponse + +Defined in `nexla_sdk/models/metrics/responses.py:68` + +Flow logs response returned by MetricsResource.get_flow_logs(). + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `logs`: `List` +- `meta`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### ResourceFlowMetricsResponse + +Defined in `nexla_sdk/models/metrics/responses.py:64` + +Flow metrics response returned by MetricsResource.get_flow_metrics(). + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `metrics`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ResourceMetricDaily -Defined in `nexla_sdk/models/metrics/responses.py:25` +Defined in `nexla_sdk/models/metrics/responses.py:30` Daily resource metrics. @@ -2910,22 +3175,22 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ResourceMetricsByRun -Defined in `nexla_sdk/models/metrics/responses.py:33` +Defined in `nexla_sdk/models/metrics/responses.py:39` Resource metrics grouped by run. Fields: -- `runId`: `typing.Optional[int]` -- `lastWritten`: `typing.Optional[int]` +- `runId`: `Optional` +- `lastWritten`: `Optional` - `dataSetId`: `int` - `records`: `int` - `size`: `int` @@ -2934,15 +3199,15 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### ResourceStatus -Defined in `nexla_sdk/models/enums.py:12` +Defined in `nexla_sdk/models/enums.py:13` Common resource status values. @@ -2958,7 +3223,7 @@ Members: ### ResourceType -Defined in `nexla_sdk/models/enums.py:23` +Defined in `nexla_sdk/models/enums.py:25` Resource types in Nexla. @@ -2983,7 +3248,7 @@ Members: ### RunInfo -Defined in `nexla_sdk/models/sources/responses.py:21` +Defined in `nexla_sdk/models/sources/responses.py:24` Run information. @@ -2995,10 +3260,10 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Runtime @@ -3011,23 +3276,23 @@ Fields: - `id`: `int` - `name`: `str` -- `description`: `typing.Optional[str]` -- `active`: `typing.Optional[bool]` -- `dockerpath`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `description`: `Optional` +- `active`: `Optional` +- `dockerpath`: `Optional` +- `managed`: `Optional` +- `config`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### RuntimeCreate @@ -3039,43 +3304,43 @@ Create payload for Custom Runtime matching OpenAPI RuntimePayload. Fields: - `name`: `str` -- `description`: `typing.Optional[str]` -- `active`: `typing.Optional[bool]` -- `dockerpath`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `description`: `Optional` +- `active`: `Optional` +- `dockerpath`: `Optional` +- `managed`: `Optional` +- `config`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### RuntimeUpdate -Defined in `nexla_sdk/models/runtimes/requests.py:16` +Defined in `nexla_sdk/models/runtimes/requests.py:17` Update payload for Custom Runtime matching OpenAPI RuntimePayload. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `active`: `typing.Optional[bool]` -- `dockerpath`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `name`: `Optional` +- `description`: `Optional` +- `active`: `Optional` +- `dockerpath`: `Optional` +- `managed`: `Optional` +- `config`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### SelfSignupRequest @@ -3095,25 +3360,25 @@ Features: Fields: - `id`: `int` -- `status`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `full_name`: `typing.Optional[str]` -- `invite_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `status`: `Optional` +- `email`: `Optional` +- `full_name`: `Optional` +- `invite_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Source -Defined in `nexla_sdk/models/sources/responses.py:27` +Defined in `nexla_sdk/models/sources/responses.py:31` Data source response model. @@ -3123,45 +3388,45 @@ Fields: - `name`: `str` - `status`: `str` - `source_type`: `str` -- `connector_type`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `managed`: `typing.Optional[bool]` -- `auto_generated`: `typing.Optional[bool]` -- `connector`: `typing.Optional[nexla_sdk.models.common.Connector]` -- `description`: `typing.Optional[str]` -- `ingest_method`: `typing.Optional[str]` -- `source_format`: `typing.Optional[str]` -- `source_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `poll_schedule`: `typing.Optional[str]` -- `code_container_id`: `typing.Optional[int]` -- `data_credentials_id`: `typing.Optional[int]` -- `data_credentials`: `typing.Optional[nexla_sdk.models.credentials.responses.Credential]` -- `data_sets`: `typing.List[nexla_sdk.models.sources.responses.DataSetBrief]` -- `api_keys`: `typing.List[typing.Dict[str, typing.Any]]` -- `run_ids`: `typing.List[nexla_sdk.models.sources.responses.RunInfo]` -- `copied_from_id`: `typing.Optional[int]` -- `flow_type`: `typing.Optional[str]` -- `has_template`: `typing.Optional[bool]` -- `vendor_endpoint`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `vendor`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` - -Methods: - -- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` - - Convert model to dictionary. -- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` +- `connector_type`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `managed`: `Optional` +- `auto_generated`: `Optional` +- `connector`: `Optional` +- `description`: `Optional` +- `ingest_method`: `Optional` +- `source_format`: `Optional` +- `source_config`: `Optional` +- `poll_schedule`: `Optional` +- `code_container_id`: `Optional` +- `data_credentials_id`: `Optional` +- `data_credentials`: `Optional` +- `data_sets`: `List` +- `api_keys`: `List` +- `run_ids`: `List` +- `copied_from_id`: `Optional` +- `flow_type`: `Optional` +- `has_template`: `Optional` +- `vendor_endpoint`: `Optional` +- `vendor`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### SourceCopyOptions -Defined in `nexla_sdk/models/sources/requests.py:30` +Defined in `nexla_sdk/models/sources/requests.py:34` Options for copying a source. @@ -3169,21 +3434,21 @@ Fields: - `reuse_data_credentials`: `bool` - `copy_access_controls`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### SourceCreate -Defined in `nexla_sdk/models/sources/requests.py:6` +Defined in `nexla_sdk/models/sources/requests.py:8` Request model for creating a source. @@ -3191,25 +3456,25 @@ Fields: - `name`: `str` - `source_type`: `str` -- `data_credentials_id`: `typing.Optional[int]` -- `description`: `typing.Optional[str]` -- `source_config`: `typing.Optional[typing.Dict]` -- `vendor_endpoint_id`: `typing.Optional[int]` -- `ingest_method`: `typing.Optional[str]` -- `template_config`: `typing.Optional[typing.Dict]` +- `data_credentials_id`: `Optional` +- `description`: `Optional` +- `source_config`: `Optional` +- `vendor_endpoint_id`: `Optional` +- `ingest_method`: `Optional` +- `template_config`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### SourceStatus -Defined in `nexla_sdk/models/sources/enums.py:5` +Defined in `nexla_sdk/models/sources/enums.py:6` Source status values. @@ -3223,7 +3488,7 @@ Members: ### SourceType -Defined in `nexla_sdk/models/sources/enums.py:14` +Defined in `nexla_sdk/models/sources/enums.py:16` Supported source types. @@ -3260,29 +3525,29 @@ Members: ### SourceUpdate -Defined in `nexla_sdk/models/sources/requests.py:22` +Defined in `nexla_sdk/models/sources/requests.py:25` Request model for updating a source. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `source_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `description`: `Optional` +- `source_config`: `Optional` +- `data_credentials_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Team -Defined in `nexla_sdk/models/teams/responses.py:15` +Defined in `nexla_sdk/models/teams/responses.py:18` Team response model. @@ -3294,91 +3559,91 @@ Fields: - `owner`: `Owner` - `org`: `Organization` - `member`: `bool` -- `members`: `typing.List[nexla_sdk.models.teams.responses.TeamMember]` -- `access_roles`: `typing.List[str]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `members`: `List` +- `access_roles`: `List` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### TeamAccessorRequest -Defined in `nexla_sdk/models/access/requests.py:17` +Defined in `nexla_sdk/models/access/requests.py:22` Request model for TEAM type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the team -- `name`: `typing.Optional[str]` — Name of the team -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the team +- `name`: `Optional` — Name of the team +- `access_roles`: `List` — List of access roles Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### TeamAccessorResponse -Defined in `nexla_sdk/models/access/responses.py:20` +Defined in `nexla_sdk/models/access/responses.py:25` Response model for TEAM type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the team -- `name`: `typing.Optional[str]` — Name of the team -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles -- `created_at`: `typing.Optional[datetime.datetime]` — Creation timestamp -- `updated_at`: `typing.Optional[datetime.datetime]` — Last update timestamp +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the team +- `name`: `Optional` — Name of the team +- `access_roles`: `List` — List of access roles +- `created_at`: `Optional` — Creation timestamp +- `updated_at`: `Optional` — Last update timestamp Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### TeamCreate -Defined in `nexla_sdk/models/teams/requests.py:14` +Defined in `nexla_sdk/models/teams/requests.py:17` Request model for creating a team. Fields: - `name`: `str` -- `description`: `typing.Optional[str]` -- `members`: `typing.List[nexla_sdk.models.teams.requests.TeamMemberRequest]` +- `description`: `Optional` +- `members`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### TeamMember -Defined in `nexla_sdk/models/teams/responses.py:8` +Defined in `nexla_sdk/models/teams/responses.py:10` Team member information. @@ -3391,71 +3656,71 @@ Fields: Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### TeamMemberList -Defined in `nexla_sdk/models/teams/requests.py:28` +Defined in `nexla_sdk/models/teams/requests.py:33` Request model for team member operations. Fields: -- `members`: `typing.List[nexla_sdk.models.teams.requests.TeamMemberRequest]` +- `members`: `List` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### TeamMemberRequest -Defined in `nexla_sdk/models/teams/requests.py:6` +Defined in `nexla_sdk/models/teams/requests.py:8` Request model for team member. Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` - `admin`: `bool` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### TeamUpdate -Defined in `nexla_sdk/models/teams/requests.py:21` +Defined in `nexla_sdk/models/teams/requests.py:25` Request model for updating a team. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `members`: `typing.Optional[typing.List[nexla_sdk.models.teams.requests.TeamMemberRequest]]` +- `name`: `Optional` +- `description`: `Optional` +- `members`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### Transform @@ -3476,39 +3741,39 @@ Fields: - `id`: `int` - `name`: `str` -- `resource_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `access_roles`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `runtime_data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `description`: `typing.Optional[str]` -- `code_type`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.transforms.responses.TransformCodeOp]]` -- `managed`: `typing.Optional[bool]` -- `data_sets`: `typing.Optional[typing.List[int]]` -- `copied_from_id`: `typing.Optional[int]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `tags`: `typing.Optional[typing.List[str]]` +- `resource_type`: `Optional` +- `reusable`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `data_credentials`: `Optional` +- `runtime_data_credentials`: `Optional` +- `description`: `Optional` +- `code_type`: `Optional` +- `output_type`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `managed`: `Optional` +- `data_sets`: `Optional` +- `copied_from_id`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` +- `tags`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### TransformCreate -Defined in `nexla_sdk/models/transforms/requests.py:7` +Defined in `nexla_sdk/models/transforms/requests.py:8` Base model class with Pydantic functionality and Nexla API compatibility. @@ -3527,25 +3792,25 @@ Fields: - `reusable`: `bool` - `code_type`: `str` - `code_encoding`: `str` -- `code`: `typing.List[nexla_sdk.models.transforms.responses.TransformCodeOp]` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `code`: `List` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### TransformType -Defined in `nexla_sdk/models/nexsets/enums.py:14` +Defined in `nexla_sdk/models/nexsets/enums.py:15` Transform types. @@ -3559,7 +3824,7 @@ Members: ### TransformUpdate -Defined in `nexla_sdk/models/transforms/requests.py:22` +Defined in `nexla_sdk/models/transforms/requests.py:23` Base model class with Pydantic functionality and Nexla API compatibility. @@ -3573,30 +3838,30 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `code_type`: `typing.Optional[str]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.transforms.responses.TransformCodeOp]]` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `output_type`: `Optional` +- `reusable`: `Optional` +- `code_type`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### User -Defined in `nexla_sdk/models/users/responses.py:22` +Defined in `nexla_sdk/models/users/responses.py:26` User response model. @@ -3605,79 +3870,79 @@ Fields: - `id`: `int` - `email`: `str` - `full_name`: `str` -- `super_user`: `typing.Optional[bool]` +- `super_user`: `Optional` - `impersonated`: `bool` - `default_org`: `DefaultOrg` -- `user_tier`: `typing.Optional[str]` +- `user_tier`: `Optional` - `status`: `str` - `account_locked`: `bool` -- `org_memberships`: `typing.List[nexla_sdk.models.users.responses.OrgMembership]` -- `api_key`: `typing.Optional[str]` -- `email_verified_at`: `typing.Optional[datetime.datetime]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `org_memberships`: `List` +- `api_key`: `Optional` +- `email_verified_at`: `Optional` +- `tos_signed_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### UserAccessorRequest -Defined in `nexla_sdk/models/access/requests.py:8` +Defined in `nexla_sdk/models/access/requests.py:10` Request model for USER type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the user -- `email`: `typing.Optional[str]` — Email of the user -- `org_id`: `typing.Optional[int]` — Organization ID for cross-org access -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the user +- `email`: `Optional` — Email of the user +- `org_id`: `Optional` — Organization ID for cross-org access +- `access_roles`: `List` — List of access roles Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### UserAccessorResponse -Defined in `nexla_sdk/models/access/responses.py:9` +Defined in `nexla_sdk/models/access/responses.py:11` Response model for USER type accessor. Fields: -- `type`: `typing.Literal[]` -- `id`: `typing.Optional[int]` — Unique ID of the user -- `email`: `typing.Optional[str]` — Email of the user -- `org_id`: `typing.Optional[int]` — Organization ID for cross-org access -- `access_roles`: `typing.List[nexla_sdk.models.enums.AccessRole]` — List of access roles -- `created_at`: `typing.Optional[datetime.datetime]` — Creation timestamp -- `updated_at`: `typing.Optional[datetime.datetime]` — Last update timestamp +- `type`: `Literal` +- `id`: `Optional` — Unique ID of the user +- `email`: `Optional` — Email of the user +- `org_id`: `Optional` — Organization ID for cross-org access +- `access_roles`: `List` — List of access roles +- `created_at`: `Optional` — Creation timestamp +- `updated_at`: `Optional` — Last update timestamp Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### UserCreate -Defined in `nexla_sdk/models/users/requests.py:6` +Defined in `nexla_sdk/models/users/requests.py:7` Request model for creating a user. @@ -3685,26 +3950,26 @@ Fields: - `full_name`: `str` - `email`: `str` -- `default_org_id`: `typing.Optional[int]` -- `status`: `typing.Optional[str]` -- `user_tier_id`: `typing.Optional[int]` -- `user_tier`: `typing.Optional[str]` -- `password`: `typing.Optional[str]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `admin`: `typing.Union[str, bool, typing.List[typing.Dict[str, typing.Any]], NoneType]` +- `default_org_id`: `Optional` +- `status`: `Optional` +- `user_tier_id`: `Optional` +- `user_tier`: `Optional` +- `password`: `Optional` +- `tos_signed_at`: `Optional` +- `admin`: `Union` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### UserExpanded -Defined in `nexla_sdk/models/users/responses.py:50` +Defined in `nexla_sdk/models/users/responses.py:56` User with expanded account summary. @@ -3713,55 +3978,55 @@ Fields: - `id`: `int` - `email`: `str` - `full_name`: `str` -- `super_user`: `typing.Optional[bool]` +- `super_user`: `Optional` - `impersonated`: `bool` - `default_org`: `DefaultOrg` -- `user_tier`: `typing.Optional[str]` +- `user_tier`: `Optional` - `status`: `str` - `account_locked`: `bool` -- `org_memberships`: `typing.List[nexla_sdk.models.users.responses.OrgMembership]` -- `api_key`: `typing.Optional[str]` -- `email_verified_at`: `typing.Optional[datetime.datetime]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `account_summary`: `typing.Optional[nexla_sdk.models.users.responses.AccountSummary]` +- `org_memberships`: `List` +- `api_key`: `Optional` +- `email_verified_at`: `Optional` +- `tos_signed_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` +- `account_summary`: `Optional` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### UserSettings -Defined in `nexla_sdk/models/users/responses.py:55` +Defined in `nexla_sdk/models/users/responses.py:62` User settings. Fields: - `id`: `str` -- `owner`: `typing.Dict[str, typing.Any]` -- `org`: `typing.Dict[str, typing.Any]` +- `owner`: `Dict` +- `org`: `Dict` - `user_settings_type`: `str` -- `settings`: `typing.Dict[str, typing.Any]` +- `settings`: `Dict` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### UserStatus -Defined in `nexla_sdk/models/enums.py:70` +Defined in `nexla_sdk/models/enums.py:76` User account status. @@ -3775,7 +4040,7 @@ Members: ### UserTier -Defined in `nexla_sdk/models/enums.py:62` +Defined in `nexla_sdk/models/enums.py:67` User account tiers. @@ -3788,35 +4053,35 @@ Members: ### UserUpdate -Defined in `nexla_sdk/models/users/requests.py:19` +Defined in `nexla_sdk/models/users/requests.py:21` Request model for updating a user. Fields: -- `name`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `user_tier_id`: `typing.Optional[int]` -- `user_tier`: `typing.Optional[str]` -- `password`: `typing.Optional[str]` -- `password_confirmation`: `typing.Optional[str]` -- `password_current`: `typing.Optional[str]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `admin`: `typing.Union[str, bool, typing.List[typing.Dict[str, typing.Any]], NoneType]` +- `name`: `Optional` +- `email`: `Optional` +- `status`: `Optional` +- `user_tier_id`: `Optional` +- `user_tier`: `Optional` +- `password`: `Optional` +- `password_confirmation`: `Optional` +- `password_current`: `Optional` +- `tos_signed_at`: `Optional` +- `admin`: `Union` Methods: - `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` - - Source: `nexla_sdk/models/base.py:40` + - Source: `nexla_sdk/models/base.py:42` - Convert model to dictionary. - `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` - - Source: `nexla_sdk/models/base.py:52` + - Source: `nexla_sdk/models/base.py:54` - Convert model to JSON string. ### VerifiedStatus -Defined in `nexla_sdk/models/credentials/enums.py:60` +Defined in `nexla_sdk/models/credentials/enums.py:61` Credential verification status. @@ -3826,3 +4091,59 @@ Members: - `UNVERIFIED` = `UNVERIFIED` - `FAILED` = `FAILED` +### WebhookResponse + +Defined in `nexla_sdk/models/webhooks/responses.py:8` + +Response from sending data to a webhook. + +Attributes: + dataset_id: Nexset ID of the Nexset receiving the record(s). + processed: Number of records successfully processed. + +Fields: + +- `dataset_id`: `Optional` +- `processed`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + +### WebhookSendOptions + +Defined in `nexla_sdk/models/webhooks/requests.py:8` + +Options for sending data to a webhook. + +Attributes: + include_headers: Include custom headers in ingested records. + Custom headers will be added as `header_` attributes. + Standard headers like `Authorization` and `Content-Type` are ignored. + include_url_params: Include custom query parameters in ingested records. + Custom params will be added as `url_param_` attributes. + Standard params like `api_key` are ignored. + force_schema_detection: Force schema detection for this record. + Normally, schema detection only happens for the first few records. + Set to True to force detection on every record. + +Fields: + +- `include_headers`: `Optional` +- `include_url_params`: `Optional` +- `force_schema_detection`: `Optional` + +Methods: + +- `to_dict(self, exclude_none: bool = True) -> Dict[str, Any]` + - Source: `nexla_sdk/models/base.py:42` + - Convert model to dictionary. +- `to_json(self, exclude_none: bool = True, indent: int = 2) -> str` + - Source: `nexla_sdk/models/base.py:54` + - Convert model to JSON string. + diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.enums.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.enums.mdx index 1f9a1c3..67c49d2 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.enums.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.enums.mdx @@ -22,7 +22,7 @@ Members: ### UserMetricResourceType -Defined in `nexla_sdk/models/metrics/enums.py:12` +Defined in `nexla_sdk/models/metrics/enums.py:13` Valid resource types for user metrics endpoints. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.mdx index 23e1896..ec07786 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.mdx @@ -10,51 +10,76 @@ keywords: [Nexla, SDK, Python, API] ### AccountMetrics -Defined in `nexla_sdk/models/metrics/responses.py:5` +Defined in `nexla_sdk/models/metrics/responses.py:7` Account utilization metrics. Fields: - `status`: `int` -- `metrics`: `typing.List[typing.Dict[str, typing.Any]]` +- `metrics`: `List` ### DashboardMetrics -Defined in `nexla_sdk/models/metrics/responses.py:19` +Defined in `nexla_sdk/models/metrics/responses.py:23` 24-hour dashboard metrics. Fields: - `status`: `int` -- `metrics`: `typing.Dict[str, typing.Any]` +- `metrics`: `Dict` ### MetricsByRunResponse -Defined in `nexla_sdk/models/metrics/responses.py:49` +Defined in `nexla_sdk/models/metrics/responses.py:57` Metrics by run response with pagination. Fields: - `status`: `int` -- `metrics`: `typing.Dict[str, typing.Any]` +- `metrics`: `Dict` ### MetricsResponse -Defined in `nexla_sdk/models/metrics/responses.py:43` +Defined in `nexla_sdk/models/metrics/responses.py:50` Generic metrics response. Fields: - `status`: `int` -- `metrics`: `typing.List[typing.Any]` +- `metrics`: `List` + +### ResourceFlowLogsResponse + +Defined in `nexla_sdk/models/metrics/responses.py:68` + +Flow logs response returned by MetricsResource.get_flow_logs(). + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `logs`: `List` +- `meta`: `Optional` + +### ResourceFlowMetricsResponse + +Defined in `nexla_sdk/models/metrics/responses.py:64` + +Flow metrics response returned by MetricsResource.get_flow_metrics(). + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `metrics`: `Optional` ### ResourceMetricDaily -Defined in `nexla_sdk/models/metrics/responses.py:25` +Defined in `nexla_sdk/models/metrics/responses.py:30` Daily resource metrics. @@ -67,14 +92,14 @@ Fields: ### ResourceMetricsByRun -Defined in `nexla_sdk/models/metrics/responses.py:33` +Defined in `nexla_sdk/models/metrics/responses.py:39` Resource metrics grouped by run. Fields: -- `runId`: `typing.Optional[int]` -- `lastWritten`: `typing.Optional[int]` +- `runId`: `Optional` +- `lastWritten`: `Optional` - `dataSetId`: `int` - `records`: `int` - `size`: `int` @@ -94,7 +119,7 @@ Members: ### UserMetricResourceType -Defined in `nexla_sdk/models/metrics/enums.py:12` +Defined in `nexla_sdk/models/metrics/enums.py:13` Valid resource types for user metrics endpoints. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.responses.mdx index 122f0ad..4fcf55a 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.metrics.responses.mdx @@ -10,18 +10,18 @@ keywords: [Nexla, SDK, Python, API] ### AccountMetrics -Defined in `nexla_sdk/models/metrics/responses.py:5` +Defined in `nexla_sdk/models/metrics/responses.py:7` Account utilization metrics. Fields: - `status`: `int` -- `metrics`: `typing.List[typing.Dict[str, typing.Any]]` +- `metrics`: `List` ### DashboardMetricSet -Defined in `nexla_sdk/models/metrics/responses.py:11` +Defined in `nexla_sdk/models/metrics/responses.py:14` Dashboard metric set for a resource. @@ -34,40 +34,65 @@ Fields: ### DashboardMetrics -Defined in `nexla_sdk/models/metrics/responses.py:19` +Defined in `nexla_sdk/models/metrics/responses.py:23` 24-hour dashboard metrics. Fields: - `status`: `int` -- `metrics`: `typing.Dict[str, typing.Any]` +- `metrics`: `Dict` ### MetricsByRunResponse -Defined in `nexla_sdk/models/metrics/responses.py:49` +Defined in `nexla_sdk/models/metrics/responses.py:57` Metrics by run response with pagination. Fields: - `status`: `int` -- `metrics`: `typing.Dict[str, typing.Any]` +- `metrics`: `Dict` ### MetricsResponse -Defined in `nexla_sdk/models/metrics/responses.py:43` +Defined in `nexla_sdk/models/metrics/responses.py:50` Generic metrics response. Fields: - `status`: `int` -- `metrics`: `typing.List[typing.Any]` +- `metrics`: `List` + +### ResourceFlowLogsResponse + +Defined in `nexla_sdk/models/metrics/responses.py:68` + +Flow logs response returned by MetricsResource.get_flow_logs(). + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `logs`: `List` +- `meta`: `Optional` + +### ResourceFlowMetricsResponse + +Defined in `nexla_sdk/models/metrics/responses.py:64` + +Flow metrics response returned by MetricsResource.get_flow_metrics(). + +Fields: + +- `status`: `Optional` +- `message`: `Optional` +- `metrics`: `Optional` ### ResourceMetricDaily -Defined in `nexla_sdk/models/metrics/responses.py:25` +Defined in `nexla_sdk/models/metrics/responses.py:30` Daily resource metrics. @@ -80,14 +105,14 @@ Fields: ### ResourceMetricsByRun -Defined in `nexla_sdk/models/metrics/responses.py:33` +Defined in `nexla_sdk/models/metrics/responses.py:39` Resource metrics grouped by run. Fields: -- `runId`: `typing.Optional[int]` -- `lastWritten`: `typing.Optional[int]` +- `runId`: `Optional` +- `lastWritten`: `Optional` - `dataSetId`: `int` - `records`: `int` - `size`: `int` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.enums.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.enums.mdx index ec4dc8a..e877530 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.enums.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.enums.mdx @@ -25,7 +25,7 @@ Members: ### OutputType -Defined in `nexla_sdk/models/nexsets/enums.py:23` +Defined in `nexla_sdk/models/nexsets/enums.py:25` Transform output types. @@ -37,7 +37,7 @@ Members: ### TransformType -Defined in `nexla_sdk/models/nexsets/enums.py:14` +Defined in `nexla_sdk/models/nexsets/enums.py:15` Transform types. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.mdx index 56f965b..42ae809 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.mdx @@ -10,61 +10,61 @@ keywords: [Nexla, SDK, Python, API] ### DataSinkSimplified -Defined in `nexla_sdk/models/nexsets/responses.py:10` +Defined in `nexla_sdk/models/nexsets/responses.py:12` Simplified data sink information. Fields: - `id`: `int` -- `owner_id`: `int` -- `org_id`: `int` +- `owner_id`: `Optional` +- `org_id`: `Optional` - `name`: `str` -- `status`: `typing.Optional[str]` -- `sink_type`: `typing.Optional[nexla_sdk.models.destinations.enums.DestinationType]` +- `status`: `Optional` +- `sink_type`: `Optional` ### Nexset -Defined in `nexla_sdk/models/nexsets/responses.py:20` +Defined in `nexla_sdk/models/nexsets/responses.py:23` Nexset (data set) response model. Fields: - `id`: `int` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `flow_type`: `typing.Optional[str]` -- `data_source_id`: `typing.Optional[int]` -- `data_source`: `typing.Optional[nexla_sdk.models.sources.responses.Source]` -- `parent_data_sets`: `typing.List[nexla_sdk.models.sources.responses.DataSetBrief]` -- `data_sinks`: `typing.List[nexla_sdk.models.nexsets.responses.DataSinkSimplified]` -- `transform_id`: `typing.Optional[int]` -- `output_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `copied_from_id`: `typing.Optional[int]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `name`: `Optional` +- `description`: `Optional` +- `status`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `flow_type`: `Optional` +- `data_source_id`: `Optional` +- `data_source`: `Optional` +- `parent_data_sets`: `List` +- `data_sinks`: `List` +- `transform_id`: `Optional` +- `output_schema`: `Optional` +- `copied_from_id`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### NexsetCopyOptions -Defined in `nexla_sdk/models/nexsets/requests.py:41` +Defined in `nexla_sdk/models/nexsets/requests.py:46` Options for copying a nexset. Fields: - `copy_access_controls`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` ### NexsetCreate -Defined in `nexla_sdk/models/nexsets/requests.py:7` +Defined in `nexla_sdk/models/nexsets/requests.py:10` Request model for creating a nexset. @@ -73,26 +73,26 @@ Fields: - `name`: `str` - `parent_data_set_id`: `int` - `has_custom_transform`: `bool` -- `transform`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `transform_id`: `typing.Optional[int]` -- `description`: `typing.Optional[str]` -- `output_schema_annotations`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `transform`: `Optional` +- `transform_id`: `Optional` +- `description`: `Optional` +- `output_schema_annotations`: `Optional` - `output_schema_validation_enabled`: `bool` -- `output_validation_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_sinks`: `typing.List[typing.Union[int, typing.Dict[str, typing.Any]]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` +- `output_validation_schema`: `Optional` +- `data_sinks`: `List` +- `custom_config`: `Optional` +- `tags`: `List` ### NexsetSample -Defined in `nexla_sdk/models/nexsets/responses.py:43` +Defined in `nexla_sdk/models/nexsets/responses.py:47` Nexset sample record. Fields: -- `raw_message`: `typing.Dict[str, typing.Any]` -- `nexla_metadata`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `raw_message`: `Dict` +- `nexla_metadata`: `Optional` ### NexsetStatus @@ -111,27 +111,27 @@ Members: ### NexsetUpdate -Defined in `nexla_sdk/models/nexsets/requests.py:26` +Defined in `nexla_sdk/models/nexsets/requests.py:30` Request model for updating a nexset. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `has_custom_transform`: `typing.Optional[bool]` -- `transform`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `transform_id`: `typing.Optional[int]` -- `output_schema_annotations`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `output_schema_validation_enabled`: `typing.Optional[bool]` -- `output_validation_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_sinks`: `typing.Optional[typing.List[typing.Union[int, typing.Dict[str, typing.Any]]]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.Optional[typing.List[str]]` +- `name`: `Optional` +- `description`: `Optional` +- `has_custom_transform`: `Optional` +- `transform`: `Optional` +- `transform_id`: `Optional` +- `output_schema_annotations`: `Optional` +- `output_schema_validation_enabled`: `Optional` +- `output_validation_schema`: `Optional` +- `data_sinks`: `Optional` +- `custom_config`: `Optional` +- `tags`: `Optional` ### OutputType -Defined in `nexla_sdk/models/nexsets/enums.py:23` +Defined in `nexla_sdk/models/nexsets/enums.py:25` Transform output types. @@ -143,7 +143,7 @@ Members: ### TransformType -Defined in `nexla_sdk/models/nexsets/enums.py:14` +Defined in `nexla_sdk/models/nexsets/enums.py:15` Transform types. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.requests.mdx index eca2465..f2daaca 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.requests.mdx @@ -12,19 +12,19 @@ Request models for nexsets. ### NexsetCopyOptions -Defined in `nexla_sdk/models/nexsets/requests.py:41` +Defined in `nexla_sdk/models/nexsets/requests.py:46` Options for copying a nexset. Fields: - `copy_access_controls`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` ### NexsetCreate -Defined in `nexla_sdk/models/nexsets/requests.py:7` +Defined in `nexla_sdk/models/nexsets/requests.py:10` Request model for creating a nexset. @@ -33,33 +33,33 @@ Fields: - `name`: `str` - `parent_data_set_id`: `int` - `has_custom_transform`: `bool` -- `transform`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `transform_id`: `typing.Optional[int]` -- `description`: `typing.Optional[str]` -- `output_schema_annotations`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `transform`: `Optional` +- `transform_id`: `Optional` +- `description`: `Optional` +- `output_schema_annotations`: `Optional` - `output_schema_validation_enabled`: `bool` -- `output_validation_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_sinks`: `typing.List[typing.Union[int, typing.Dict[str, typing.Any]]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` +- `output_validation_schema`: `Optional` +- `data_sinks`: `List` +- `custom_config`: `Optional` +- `tags`: `List` ### NexsetUpdate -Defined in `nexla_sdk/models/nexsets/requests.py:26` +Defined in `nexla_sdk/models/nexsets/requests.py:30` Request model for updating a nexset. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `has_custom_transform`: `typing.Optional[bool]` -- `transform`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `transform_id`: `typing.Optional[int]` -- `output_schema_annotations`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `output_schema_validation_enabled`: `typing.Optional[bool]` -- `output_validation_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_sinks`: `typing.Optional[typing.List[typing.Union[int, typing.Dict[str, typing.Any]]]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.Optional[typing.List[str]]` +- `name`: `Optional` +- `description`: `Optional` +- `has_custom_transform`: `Optional` +- `transform`: `Optional` +- `transform_id`: `Optional` +- `output_schema_annotations`: `Optional` +- `output_schema_validation_enabled`: `Optional` +- `output_validation_schema`: `Optional` +- `data_sinks`: `Optional` +- `custom_config`: `Optional` +- `tags`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.responses.mdx index d89ee3c..19bf7d0 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.nexsets.responses.mdx @@ -10,54 +10,54 @@ keywords: [Nexla, SDK, Python, API] ### DataSinkSimplified -Defined in `nexla_sdk/models/nexsets/responses.py:10` +Defined in `nexla_sdk/models/nexsets/responses.py:12` Simplified data sink information. Fields: - `id`: `int` -- `owner_id`: `int` -- `org_id`: `int` +- `owner_id`: `Optional` +- `org_id`: `Optional` - `name`: `str` -- `status`: `typing.Optional[str]` -- `sink_type`: `typing.Optional[nexla_sdk.models.destinations.enums.DestinationType]` +- `status`: `Optional` +- `sink_type`: `Optional` ### Nexset -Defined in `nexla_sdk/models/nexsets/responses.py:20` +Defined in `nexla_sdk/models/nexsets/responses.py:23` Nexset (data set) response model. Fields: - `id`: `int` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `flow_type`: `typing.Optional[str]` -- `data_source_id`: `typing.Optional[int]` -- `data_source`: `typing.Optional[nexla_sdk.models.sources.responses.Source]` -- `parent_data_sets`: `typing.List[nexla_sdk.models.sources.responses.DataSetBrief]` -- `data_sinks`: `typing.List[nexla_sdk.models.nexsets.responses.DataSinkSimplified]` -- `transform_id`: `typing.Optional[int]` -- `output_schema`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `copied_from_id`: `typing.Optional[int]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `name`: `Optional` +- `description`: `Optional` +- `status`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `flow_type`: `Optional` +- `data_source_id`: `Optional` +- `data_source`: `Optional` +- `parent_data_sets`: `List` +- `data_sinks`: `List` +- `transform_id`: `Optional` +- `output_schema`: `Optional` +- `copied_from_id`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### NexsetSample -Defined in `nexla_sdk/models/nexsets/responses.py:43` +Defined in `nexla_sdk/models/nexsets/responses.py:47` Nexset sample record. Fields: -- `raw_message`: `typing.Dict[str, typing.Any]` -- `nexla_metadata`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `raw_message`: `Dict` +- `nexla_metadata`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.mdx index 5bfd3dc..586769a 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Notification -Defined in `nexla_sdk/models/notifications/responses.py:8` +Defined in `nexla_sdk/models/notifications/responses.py:10` Notification response model. @@ -19,19 +19,19 @@ Fields: - `id`: `int` - `owner`: `Owner` - `org`: `Organization` -- `access_roles`: `typing.List[str]` +- `access_roles`: `List` - `level`: `str` -- `resource_id`: `int` +- `resource_id`: `Optional` - `resource_type`: `str` - `message_id`: `int` - `message`: `str` -- `read_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `read_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### NotificationChannelSetting -Defined in `nexla_sdk/models/notifications/responses.py:37` +Defined in `nexla_sdk/models/notifications/responses.py:41` Notification channel configuration. @@ -41,33 +41,33 @@ Fields: - `owner_id`: `int` - `org_id`: `int` - `channel`: `str` -- `config`: `typing.Dict[str, typing.Any]` +- `config`: `Dict` ### NotificationChannelSettingCreate -Defined in `nexla_sdk/models/notifications/requests.py:6` +Defined in `nexla_sdk/models/notifications/requests.py:8` Request model for creating notification channel setting. Fields: - `channel`: `str` -- `config`: `typing.Dict[str, typing.Any]` +- `config`: `Dict` ### NotificationChannelSettingUpdate -Defined in `nexla_sdk/models/notifications/requests.py:12` +Defined in `nexla_sdk/models/notifications/requests.py:15` Request model for updating notification channel setting. Fields: -- `channel`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `channel`: `Optional` +- `config`: `Optional` ### NotificationCount -Defined in `nexla_sdk/models/notifications/responses.py:67` +Defined in `nexla_sdk/models/notifications/responses.py:73` Notification count response. @@ -77,7 +77,7 @@ Fields: ### NotificationSetting -Defined in `nexla_sdk/models/notifications/responses.py:46` +Defined in `nexla_sdk/models/notifications/responses.py:51` Notification setting configuration. @@ -88,7 +88,7 @@ Fields: - `owner_id`: `int` - `channel`: `str` - `notification_resource_type`: `str` -- `resource_id`: `int` +- `resource_id`: `Optional` - `status`: `str` - `notification_type_id`: `int` - `name`: `str` @@ -97,12 +97,12 @@ Fields: - `category`: `str` - `event_type`: `str` - `resource_type`: `str` -- `config`: `typing.Dict[str, typing.Any]` -- `priority`: `typing.Optional[int]` +- `config`: `Dict` +- `priority`: `Optional` ### NotificationSettingCreate -Defined in `nexla_sdk/models/notifications/requests.py:18` +Defined in `nexla_sdk/models/notifications/requests.py:22` Request model for creating notification setting. @@ -110,32 +110,32 @@ Fields: - `channel`: `str` - `notification_type_id`: `int` -- `status`: `typing.Optional[str]` -- `config`: `typing.Dict[str, typing.Any]` -- `notification_resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `notification_channel_setting_id`: `typing.Optional[int]` +- `status`: `Optional` +- `config`: `Dict` +- `notification_resource_type`: `Optional` +- `resource_id`: `Optional` +- `notification_channel_setting_id`: `Optional` ### NotificationSettingUpdate -Defined in `nexla_sdk/models/notifications/requests.py:29` +Defined in `nexla_sdk/models/notifications/requests.py:34` Request model for updating notification setting. Fields: -- `channel`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `notification_resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `checked`: `typing.Optional[bool]` -- `notification_channel_setting_id`: `typing.Optional[int]` -- `notification_type_id`: `typing.Optional[int]` +- `channel`: `Optional` +- `status`: `Optional` +- `config`: `Optional` +- `notification_resource_type`: `Optional` +- `resource_id`: `Optional` +- `checked`: `Optional` +- `notification_channel_setting_id`: `Optional` +- `notification_type_id`: `Optional` ### NotificationType -Defined in `nexla_sdk/models/notifications/responses.py:25` +Defined in `nexla_sdk/models/notifications/responses.py:28` Notification type information. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.requests.mdx index efc93b3..806e9fb 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.requests.mdx @@ -10,29 +10,29 @@ keywords: [Nexla, SDK, Python, API] ### NotificationChannelSettingCreate -Defined in `nexla_sdk/models/notifications/requests.py:6` +Defined in `nexla_sdk/models/notifications/requests.py:8` Request model for creating notification channel setting. Fields: - `channel`: `str` -- `config`: `typing.Dict[str, typing.Any]` +- `config`: `Dict` ### NotificationChannelSettingUpdate -Defined in `nexla_sdk/models/notifications/requests.py:12` +Defined in `nexla_sdk/models/notifications/requests.py:15` Request model for updating notification channel setting. Fields: -- `channel`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `channel`: `Optional` +- `config`: `Optional` ### NotificationSettingCreate -Defined in `nexla_sdk/models/notifications/requests.py:18` +Defined in `nexla_sdk/models/notifications/requests.py:22` Request model for creating notification setting. @@ -40,26 +40,26 @@ Fields: - `channel`: `str` - `notification_type_id`: `int` -- `status`: `typing.Optional[str]` -- `config`: `typing.Dict[str, typing.Any]` -- `notification_resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `notification_channel_setting_id`: `typing.Optional[int]` +- `status`: `Optional` +- `config`: `Dict` +- `notification_resource_type`: `Optional` +- `resource_id`: `Optional` +- `notification_channel_setting_id`: `Optional` ### NotificationSettingUpdate -Defined in `nexla_sdk/models/notifications/requests.py:29` +Defined in `nexla_sdk/models/notifications/requests.py:34` Request model for updating notification setting. Fields: -- `channel`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `notification_resource_type`: `typing.Optional[str]` -- `resource_id`: `typing.Optional[int]` -- `checked`: `typing.Optional[bool]` -- `notification_channel_setting_id`: `typing.Optional[int]` -- `notification_type_id`: `typing.Optional[int]` +- `channel`: `Optional` +- `status`: `Optional` +- `config`: `Optional` +- `notification_resource_type`: `Optional` +- `resource_id`: `Optional` +- `checked`: `Optional` +- `notification_channel_setting_id`: `Optional` +- `notification_type_id`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.responses.mdx index 5c7631b..7dae039 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.notifications.responses.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Notification -Defined in `nexla_sdk/models/notifications/responses.py:8` +Defined in `nexla_sdk/models/notifications/responses.py:10` Notification response model. @@ -19,19 +19,19 @@ Fields: - `id`: `int` - `owner`: `Owner` - `org`: `Organization` -- `access_roles`: `typing.List[str]` +- `access_roles`: `List` - `level`: `str` -- `resource_id`: `int` +- `resource_id`: `Optional` - `resource_type`: `str` - `message_id`: `int` - `message`: `str` -- `read_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `read_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### NotificationChannelSetting -Defined in `nexla_sdk/models/notifications/responses.py:37` +Defined in `nexla_sdk/models/notifications/responses.py:41` Notification channel configuration. @@ -41,11 +41,11 @@ Fields: - `owner_id`: `int` - `org_id`: `int` - `channel`: `str` -- `config`: `typing.Dict[str, typing.Any]` +- `config`: `Dict` ### NotificationCount -Defined in `nexla_sdk/models/notifications/responses.py:67` +Defined in `nexla_sdk/models/notifications/responses.py:73` Notification count response. @@ -55,7 +55,7 @@ Fields: ### NotificationSetting -Defined in `nexla_sdk/models/notifications/responses.py:46` +Defined in `nexla_sdk/models/notifications/responses.py:51` Notification setting configuration. @@ -66,7 +66,7 @@ Fields: - `owner_id`: `int` - `channel`: `str` - `notification_resource_type`: `str` -- `resource_id`: `int` +- `resource_id`: `Optional` - `status`: `str` - `notification_type_id`: `int` - `name`: `str` @@ -75,12 +75,12 @@ Fields: - `category`: `str` - `event_type`: `str` - `resource_type`: `str` -- `config`: `typing.Dict[str, typing.Any]` -- `priority`: `typing.Optional[int]` +- `config`: `Dict` +- `priority`: `Optional` ### NotificationType -Defined in `nexla_sdk/models/notifications/responses.py:25` +Defined in `nexla_sdk/models/notifications/responses.py:28` Notification type information. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.mdx index f4fb1b1..fdba5c1 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.mdx @@ -25,33 +25,33 @@ Features: Fields: - `id`: `int` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `uid`: `typing.Optional[str]` -- `protocol`: `typing.Optional[str]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `global_`: `typing.Optional[bool]` -- `auto_create_users_enabled`: `typing.Optional[bool]` -- `name_identifier_format`: `typing.Optional[str]` -- `nexla_base_url`: `typing.Optional[str]` -- `service_entity_id`: `typing.Optional[str]` -- `assertion_consumer_url`: `typing.Optional[str]` -- `logout_url`: `typing.Optional[str]` -- `metadata_url`: `typing.Optional[str]` -- `idp_entity_id`: `typing.Optional[str]` -- `idp_sso_target_url`: `typing.Optional[str]` -- `idp_slo_target_url`: `typing.Optional[str]` -- `idp_cert`: `typing.Optional[str]` -- `security_settings`: `typing.Optional[str]` -- `oidc_domain`: `typing.Optional[str]` -- `oidc_keys_url_key`: `typing.Optional[str]` -- `oidc_token_verify_url`: `typing.Optional[str]` -- `oidc_id_claims`: `typing.Optional[str]` -- `oidc_access_claims`: `typing.Optional[str]` -- `client_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` +- `owner`: `Optional` +- `org`: `Optional` +- `uid`: `Optional` +- `protocol`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `global_`: `Optional` +- `auto_create_users_enabled`: `Optional` +- `name_identifier_format`: `Optional` +- `nexla_base_url`: `Optional` +- `service_entity_id`: `Optional` +- `assertion_consumer_url`: `Optional` +- `logout_url`: `Optional` +- `metadata_url`: `Optional` +- `idp_entity_id`: `Optional` +- `idp_sso_target_url`: `Optional` +- `idp_slo_target_url`: `Optional` +- `idp_cert`: `Optional` +- `security_settings`: `Optional` +- `oidc_domain`: `Optional` +- `oidc_keys_url_key`: `Optional` +- `oidc_token_verify_url`: `Optional` +- `oidc_id_claims`: `Optional` +- `oidc_access_claims`: `Optional` +- `client_config`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` ### AuthConfigPayload @@ -69,28 +69,28 @@ Features: Fields: -- `id`: `typing.Optional[int]` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` -- `uid`: `typing.Optional[str]` -- `protocol`: `typing.Optional[str]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `global_`: `typing.Optional[bool]` -- `enabled_by_default`: `typing.Optional[bool]` -- `auto_create_users_enabled`: `typing.Optional[bool]` -- `name_identifier_format`: `typing.Optional[str]` -- `nexla_base_url`: `typing.Optional[str]` -- `service_entity_id`: `typing.Optional[str]` -- `assertion_consumer_url`: `typing.Optional[str]` -- `idp_entity_id`: `typing.Optional[str]` -- `idp_sso_target_url`: `typing.Optional[str]` -- `idp_slo_target_url`: `typing.Optional[str]` -- `idp_cert`: `typing.Optional[str]` -- `security_settings`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `metadata`: `typing.Optional[str]` -- `oidc_domain`: `typing.Optional[str]` -- `oidc_keys_url_key`: `typing.Optional[str]` -- `oidc_id_claims`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `oidc_access_claims`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `id`: `Optional` +- `owner_id`: `Optional` +- `org_id`: `Optional` +- `uid`: `Optional` +- `protocol`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `global_`: `Optional` +- `enabled_by_default`: `Optional` +- `auto_create_users_enabled`: `Optional` +- `name_identifier_format`: `Optional` +- `nexla_base_url`: `Optional` +- `service_entity_id`: `Optional` +- `assertion_consumer_url`: `Optional` +- `idp_entity_id`: `Optional` +- `idp_sso_target_url`: `Optional` +- `idp_slo_target_url`: `Optional` +- `idp_cert`: `Optional` +- `security_settings`: `Optional` +- `metadata`: `Optional` +- `oidc_domain`: `Optional` +- `oidc_keys_url_key`: `Optional` +- `oidc_id_claims`: `Optional` +- `oidc_access_claims`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.requests.mdx index 2ff20c1..b5e1330 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.requests.mdx @@ -24,28 +24,28 @@ Features: Fields: -- `id`: `typing.Optional[int]` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` -- `uid`: `typing.Optional[str]` -- `protocol`: `typing.Optional[str]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `global_`: `typing.Optional[bool]` -- `enabled_by_default`: `typing.Optional[bool]` -- `auto_create_users_enabled`: `typing.Optional[bool]` -- `name_identifier_format`: `typing.Optional[str]` -- `nexla_base_url`: `typing.Optional[str]` -- `service_entity_id`: `typing.Optional[str]` -- `assertion_consumer_url`: `typing.Optional[str]` -- `idp_entity_id`: `typing.Optional[str]` -- `idp_sso_target_url`: `typing.Optional[str]` -- `idp_slo_target_url`: `typing.Optional[str]` -- `idp_cert`: `typing.Optional[str]` -- `security_settings`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `metadata`: `typing.Optional[str]` -- `oidc_domain`: `typing.Optional[str]` -- `oidc_keys_url_key`: `typing.Optional[str]` -- `oidc_id_claims`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `oidc_access_claims`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `id`: `Optional` +- `owner_id`: `Optional` +- `org_id`: `Optional` +- `uid`: `Optional` +- `protocol`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `global_`: `Optional` +- `enabled_by_default`: `Optional` +- `auto_create_users_enabled`: `Optional` +- `name_identifier_format`: `Optional` +- `nexla_base_url`: `Optional` +- `service_entity_id`: `Optional` +- `assertion_consumer_url`: `Optional` +- `idp_entity_id`: `Optional` +- `idp_sso_target_url`: `Optional` +- `idp_slo_target_url`: `Optional` +- `idp_cert`: `Optional` +- `security_settings`: `Optional` +- `metadata`: `Optional` +- `oidc_domain`: `Optional` +- `oidc_keys_url_key`: `Optional` +- `oidc_id_claims`: `Optional` +- `oidc_access_claims`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.responses.mdx index 8bcae7f..a684043 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.org_auth_configs.responses.mdx @@ -25,31 +25,31 @@ Features: Fields: - `id`: `int` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `uid`: `typing.Optional[str]` -- `protocol`: `typing.Optional[str]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `global_`: `typing.Optional[bool]` -- `auto_create_users_enabled`: `typing.Optional[bool]` -- `name_identifier_format`: `typing.Optional[str]` -- `nexla_base_url`: `typing.Optional[str]` -- `service_entity_id`: `typing.Optional[str]` -- `assertion_consumer_url`: `typing.Optional[str]` -- `logout_url`: `typing.Optional[str]` -- `metadata_url`: `typing.Optional[str]` -- `idp_entity_id`: `typing.Optional[str]` -- `idp_sso_target_url`: `typing.Optional[str]` -- `idp_slo_target_url`: `typing.Optional[str]` -- `idp_cert`: `typing.Optional[str]` -- `security_settings`: `typing.Optional[str]` -- `oidc_domain`: `typing.Optional[str]` -- `oidc_keys_url_key`: `typing.Optional[str]` -- `oidc_token_verify_url`: `typing.Optional[str]` -- `oidc_id_claims`: `typing.Optional[str]` -- `oidc_access_claims`: `typing.Optional[str]` -- `client_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` +- `owner`: `Optional` +- `org`: `Optional` +- `uid`: `Optional` +- `protocol`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `global_`: `Optional` +- `auto_create_users_enabled`: `Optional` +- `name_identifier_format`: `Optional` +- `nexla_base_url`: `Optional` +- `service_entity_id`: `Optional` +- `assertion_consumer_url`: `Optional` +- `logout_url`: `Optional` +- `metadata_url`: `Optional` +- `idp_entity_id`: `Optional` +- `idp_sso_target_url`: `Optional` +- `idp_slo_target_url`: `Optional` +- `idp_cert`: `Optional` +- `security_settings`: `Optional` +- `oidc_domain`: `Optional` +- `oidc_keys_url_key`: `Optional` +- `oidc_token_verify_url`: `Optional` +- `oidc_id_claims`: `Optional` +- `oidc_access_claims`: `Optional` +- `client_config`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.custodians.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.custodians.mdx index 39c9c64..c7f5511 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.custodians.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.custodians.mdx @@ -16,16 +16,16 @@ Reference to a user for organization custodians (by id or email). Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` ### OrgCustodiansPayload -Defined in `nexla_sdk/models/organizations/custodians.py:12` +Defined in `nexla_sdk/models/organizations/custodians.py:13` Payload for organization custodians endpoints. Fields: -- `custodians`: `typing.List[nexla_sdk.models.organizations.custodians.OrgCustodianRef]` +- `custodians`: `List` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.mdx index 179581b..529ae46 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.mdx @@ -10,28 +10,28 @@ keywords: [Nexla, SDK, Python, API] ### AccountSummary -Defined in `nexla_sdk/models/organizations/responses.py:60` +Defined in `nexla_sdk/models/organizations/responses.py:65` Organization account summary statistics. Fields: - `org_id`: `int` -- `data_sources`: `typing.Dict[str, int]` -- `data_sets`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_sinks`: `typing.Dict[str, int]` +- `data_sources`: `Dict` +- `data_sets`: `Dict` +- `data_sinks`: `Dict` ### CustodianUser -Defined in `nexla_sdk/models/organizations/responses.py:68` +Defined in `nexla_sdk/models/organizations/responses.py:74` Simplified user view for organization custodians endpoints. Fields: - `id`: `int` -- `email`: `typing.Optional[str]` -- `full_name`: `typing.Optional[str]` +- `email`: `Optional` +- `full_name`: `Optional` ### OrgCustodianRef @@ -41,22 +41,22 @@ Reference to a user for organization custodians (by id or email). Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` ### OrgCustodiansPayload -Defined in `nexla_sdk/models/organizations/custodians.py:12` +Defined in `nexla_sdk/models/organizations/custodians.py:13` Payload for organization custodians endpoints. Fields: -- `custodians`: `typing.List[nexla_sdk.models.organizations.custodians.OrgCustodianRef]` +- `custodians`: `List` ### OrgMember -Defined in `nexla_sdk/models/organizations/responses.py:49` +Defined in `nexla_sdk/models/organizations/responses.py:53` Organization member information. @@ -66,23 +66,23 @@ Fields: - `full_name`: `str` - `email`: `str` - `is_admin`: `bool` -- `access_role`: `typing.Optional[typing.List[str]]` +- `access_role`: `Optional` - `org_membership_status`: `str` - `user_status`: `str` ### OrgMemberActivateDeactivateRequest -Defined in `nexla_sdk/models/organizations/requests.py:70` +Defined in `nexla_sdk/models/organizations/requests.py:79` Request model for activating/deactivating org members. Fields: -- `members`: `typing.List[typing.Dict[str, typing.Any]]` +- `members`: `List` ### OrgMemberCreateRequest -Defined in `nexla_sdk/models/organizations/requests.py:11` +Defined in `nexla_sdk/models/organizations/requests.py:13` Request model for creating an org member. @@ -94,53 +94,53 @@ Fields: ### OrgMemberDelete -Defined in `nexla_sdk/models/organizations/requests.py:65` +Defined in `nexla_sdk/models/organizations/requests.py:73` Request model for deleting org members. Fields: -- `members`: `typing.List[nexla_sdk.models.organizations.requests.OrgMemberDeleteRequest]` +- `members`: `List` ### OrgMemberDeleteRequest -Defined in `nexla_sdk/models/organizations/requests.py:58` +Defined in `nexla_sdk/models/organizations/requests.py:65` Request model for deleting a single org member. Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` -- `delegate_owner_id`: `typing.Optional[int]` +- `id`: `Optional` +- `email`: `Optional` +- `delegate_owner_id`: `Optional` ### OrgMemberList -Defined in `nexla_sdk/models/organizations/requests.py:53` +Defined in `nexla_sdk/models/organizations/requests.py:59` Request model for updating org members. Fields: -- `members`: `typing.List[nexla_sdk.models.organizations.requests.OrgMemberUpdate]` +- `members`: `List` ### OrgMemberUpdate -Defined in `nexla_sdk/models/organizations/requests.py:44` +Defined in `nexla_sdk/models/organizations/requests.py:49` Request model for updating org member. Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` -- `full_name`: `typing.Optional[str]` -- `admin`: `typing.Optional[bool]` -- `access_role`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` +- `full_name`: `Optional` +- `admin`: `Optional` +- `access_role`: `Optional` ### OrgTier -Defined in `nexla_sdk/models/organizations/responses.py:8` +Defined in `nexla_sdk/models/organizations/responses.py:10` Organization tier information. @@ -152,11 +152,11 @@ Fields: - `record_count_limit`: `int` - `record_count_limit_time`: `str` - `data_source_count_limit`: `int` -- `trial_period_days`: `typing.Optional[int]` +- `trial_period_days`: `Optional` ### Organization -Defined in `nexla_sdk/models/organizations/responses.py:19` +Defined in `nexla_sdk/models/organizations/responses.py:22` Organization response model. @@ -164,33 +164,33 @@ Fields: - `id`: `int` - `name`: `str` -- `email_domain`: `typing.Optional[str]` -- `access_roles`: `typing.List[str]` -- `owner`: `typing.Optional[nexla_sdk.models.users.responses.User]` -- `status`: `typing.Optional[str]` -- `members_default_access_role`: `typing.Optional[str]` -- `default_reusable_code_container_access_role`: `typing.Optional[str]` -- `require_org_admin_to_publish`: `typing.Optional[bool]` -- `require_org_admin_to_subscribe`: `typing.Optional[bool]` -- `enable_nexla_password_login`: `typing.Optional[bool]` -- `description`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `client_identifier`: `typing.Optional[str]` -- `org_webhook_host`: `typing.Optional[str]` -- `default_cluster_id`: `typing.Optional[int]` -- `billing_owner`: `typing.Optional[nexla_sdk.models.users.responses.User]` -- `admins`: `typing.List[nexla_sdk.models.users.responses.User]` -- `org_tier`: `typing.Optional[nexla_sdk.models.organizations.responses.OrgTier]` -- `account_tier_display_name`: `typing.Optional[str]` -- `account_tier_name`: `typing.Optional[str]` -- `email_domain_verified_at`: `typing.Optional[datetime.datetime]` -- `name_verified_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `email_domain`: `Optional` +- `access_roles`: `List` +- `owner`: `Optional` +- `status`: `Optional` +- `members_default_access_role`: `Optional` +- `default_reusable_code_container_access_role`: `Optional` +- `require_org_admin_to_publish`: `Optional` +- `require_org_admin_to_subscribe`: `Optional` +- `enable_nexla_password_login`: `Optional` +- `description`: `Optional` +- `email`: `Optional` +- `client_identifier`: `Optional` +- `org_webhook_host`: `Optional` +- `default_cluster_id`: `Optional` +- `billing_owner`: `Optional` +- `admins`: `List` +- `org_tier`: `Optional` +- `account_tier_display_name`: `Optional` +- `account_tier_name`: `Optional` +- `email_domain_verified_at`: `Optional` +- `name_verified_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### OrganizationCreate -Defined in `nexla_sdk/models/organizations/requests.py:18` +Defined in `nexla_sdk/models/organizations/requests.py:21` Request model for creating an organization. @@ -198,29 +198,29 @@ Fields: - `name`: `str` - `email_domain`: `str` -- `owner`: `typing.Optional[nexla_sdk.models.organizations.requests.OrgOwnerRequest]` -- `owner_id`: `typing.Optional[int]` -- `description`: `typing.Optional[str]` -- `billing_owner`: `typing.Optional[nexla_sdk.models.organizations.requests.OrgOwnerRequest]` -- `billing_owner_id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` -- `account_tier_id`: `typing.Optional[int]` -- `members`: `typing.Optional[typing.List[nexla_sdk.models.organizations.requests.OrgMemberCreateRequest]]` +- `owner`: `Optional` +- `owner_id`: `Optional` +- `description`: `Optional` +- `billing_owner`: `Optional` +- `billing_owner_id`: `Optional` +- `email`: `Optional` +- `account_tier_id`: `Optional` +- `members`: `Optional` ### OrganizationUpdate -Defined in `nexla_sdk/models/organizations/requests.py:32` +Defined in `nexla_sdk/models/organizations/requests.py:36` Request model for updating an organization. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.organizations.requests.OrgOwnerRequest]` -- `owner_id`: `typing.Optional[int]` -- `billing_owner`: `typing.Optional[nexla_sdk.models.organizations.requests.OrgOwnerRequest]` -- `billing_owner_id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` -- `members`: `typing.Optional[typing.List[nexla_sdk.models.organizations.requests.OrgMemberCreateRequest]]` +- `name`: `Optional` +- `description`: `Optional` +- `owner`: `Optional` +- `owner_id`: `Optional` +- `billing_owner`: `Optional` +- `billing_owner_id`: `Optional` +- `email`: `Optional` +- `members`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.requests.mdx index 0aa7858..59fdc92 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.requests.mdx @@ -10,17 +10,17 @@ keywords: [Nexla, SDK, Python, API] ### OrgMemberActivateDeactivateRequest -Defined in `nexla_sdk/models/organizations/requests.py:70` +Defined in `nexla_sdk/models/organizations/requests.py:79` Request model for activating/deactivating org members. Fields: -- `members`: `typing.List[typing.Dict[str, typing.Any]]` +- `members`: `List` ### OrgMemberCreateRequest -Defined in `nexla_sdk/models/organizations/requests.py:11` +Defined in `nexla_sdk/models/organizations/requests.py:13` Request model for creating an org member. @@ -32,53 +32,53 @@ Fields: ### OrgMemberDelete -Defined in `nexla_sdk/models/organizations/requests.py:65` +Defined in `nexla_sdk/models/organizations/requests.py:73` Request model for deleting org members. Fields: -- `members`: `typing.List[nexla_sdk.models.organizations.requests.OrgMemberDeleteRequest]` +- `members`: `List` ### OrgMemberDeleteRequest -Defined in `nexla_sdk/models/organizations/requests.py:58` +Defined in `nexla_sdk/models/organizations/requests.py:65` Request model for deleting a single org member. Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` -- `delegate_owner_id`: `typing.Optional[int]` +- `id`: `Optional` +- `email`: `Optional` +- `delegate_owner_id`: `Optional` ### OrgMemberList -Defined in `nexla_sdk/models/organizations/requests.py:53` +Defined in `nexla_sdk/models/organizations/requests.py:59` Request model for updating org members. Fields: -- `members`: `typing.List[nexla_sdk.models.organizations.requests.OrgMemberUpdate]` +- `members`: `List` ### OrgMemberUpdate -Defined in `nexla_sdk/models/organizations/requests.py:44` +Defined in `nexla_sdk/models/organizations/requests.py:49` Request model for updating org member. Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` -- `full_name`: `typing.Optional[str]` -- `admin`: `typing.Optional[bool]` -- `access_role`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` +- `full_name`: `Optional` +- `admin`: `Optional` +- `access_role`: `Optional` ### OrgOwnerRequest -Defined in `nexla_sdk/models/organizations/requests.py:5` +Defined in `nexla_sdk/models/organizations/requests.py:6` Request model for specifying an org owner. @@ -89,7 +89,7 @@ Fields: ### OrganizationCreate -Defined in `nexla_sdk/models/organizations/requests.py:18` +Defined in `nexla_sdk/models/organizations/requests.py:21` Request model for creating an organization. @@ -97,29 +97,29 @@ Fields: - `name`: `str` - `email_domain`: `str` -- `owner`: `typing.Optional[nexla_sdk.models.organizations.requests.OrgOwnerRequest]` -- `owner_id`: `typing.Optional[int]` -- `description`: `typing.Optional[str]` -- `billing_owner`: `typing.Optional[nexla_sdk.models.organizations.requests.OrgOwnerRequest]` -- `billing_owner_id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` -- `account_tier_id`: `typing.Optional[int]` -- `members`: `typing.Optional[typing.List[nexla_sdk.models.organizations.requests.OrgMemberCreateRequest]]` +- `owner`: `Optional` +- `owner_id`: `Optional` +- `description`: `Optional` +- `billing_owner`: `Optional` +- `billing_owner_id`: `Optional` +- `email`: `Optional` +- `account_tier_id`: `Optional` +- `members`: `Optional` ### OrganizationUpdate -Defined in `nexla_sdk/models/organizations/requests.py:32` +Defined in `nexla_sdk/models/organizations/requests.py:36` Request model for updating an organization. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.organizations.requests.OrgOwnerRequest]` -- `owner_id`: `typing.Optional[int]` -- `billing_owner`: `typing.Optional[nexla_sdk.models.organizations.requests.OrgOwnerRequest]` -- `billing_owner_id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` -- `members`: `typing.Optional[typing.List[nexla_sdk.models.organizations.requests.OrgMemberCreateRequest]]` +- `name`: `Optional` +- `description`: `Optional` +- `owner`: `Optional` +- `owner_id`: `Optional` +- `billing_owner`: `Optional` +- `billing_owner_id`: `Optional` +- `email`: `Optional` +- `members`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.responses.mdx index ef9fac6..b7f2831 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.organizations.responses.mdx @@ -10,32 +10,32 @@ keywords: [Nexla, SDK, Python, API] ### AccountSummary -Defined in `nexla_sdk/models/organizations/responses.py:60` +Defined in `nexla_sdk/models/organizations/responses.py:65` Organization account summary statistics. Fields: - `org_id`: `int` -- `data_sources`: `typing.Dict[str, int]` -- `data_sets`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_sinks`: `typing.Dict[str, int]` +- `data_sources`: `Dict` +- `data_sets`: `Dict` +- `data_sinks`: `Dict` ### CustodianUser -Defined in `nexla_sdk/models/organizations/responses.py:68` +Defined in `nexla_sdk/models/organizations/responses.py:74` Simplified user view for organization custodians endpoints. Fields: - `id`: `int` -- `email`: `typing.Optional[str]` -- `full_name`: `typing.Optional[str]` +- `email`: `Optional` +- `full_name`: `Optional` ### OrgMember -Defined in `nexla_sdk/models/organizations/responses.py:49` +Defined in `nexla_sdk/models/organizations/responses.py:53` Organization member information. @@ -45,13 +45,13 @@ Fields: - `full_name`: `str` - `email`: `str` - `is_admin`: `bool` -- `access_role`: `typing.Optional[typing.List[str]]` +- `access_role`: `Optional` - `org_membership_status`: `str` - `user_status`: `str` ### OrgTier -Defined in `nexla_sdk/models/organizations/responses.py:8` +Defined in `nexla_sdk/models/organizations/responses.py:10` Organization tier information. @@ -63,11 +63,11 @@ Fields: - `record_count_limit`: `int` - `record_count_limit_time`: `str` - `data_source_count_limit`: `int` -- `trial_period_days`: `typing.Optional[int]` +- `trial_period_days`: `Optional` ### Organization -Defined in `nexla_sdk/models/organizations/responses.py:19` +Defined in `nexla_sdk/models/organizations/responses.py:22` Organization response model. @@ -75,27 +75,27 @@ Fields: - `id`: `int` - `name`: `str` -- `email_domain`: `typing.Optional[str]` -- `access_roles`: `typing.List[str]` -- `owner`: `typing.Optional[nexla_sdk.models.users.responses.User]` -- `status`: `typing.Optional[str]` -- `members_default_access_role`: `typing.Optional[str]` -- `default_reusable_code_container_access_role`: `typing.Optional[str]` -- `require_org_admin_to_publish`: `typing.Optional[bool]` -- `require_org_admin_to_subscribe`: `typing.Optional[bool]` -- `enable_nexla_password_login`: `typing.Optional[bool]` -- `description`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `client_identifier`: `typing.Optional[str]` -- `org_webhook_host`: `typing.Optional[str]` -- `default_cluster_id`: `typing.Optional[int]` -- `billing_owner`: `typing.Optional[nexla_sdk.models.users.responses.User]` -- `admins`: `typing.List[nexla_sdk.models.users.responses.User]` -- `org_tier`: `typing.Optional[nexla_sdk.models.organizations.responses.OrgTier]` -- `account_tier_display_name`: `typing.Optional[str]` -- `account_tier_name`: `typing.Optional[str]` -- `email_domain_verified_at`: `typing.Optional[datetime.datetime]` -- `name_verified_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `email_domain`: `Optional` +- `access_roles`: `List` +- `owner`: `Optional` +- `status`: `Optional` +- `members_default_access_role`: `Optional` +- `default_reusable_code_container_access_role`: `Optional` +- `require_org_admin_to_publish`: `Optional` +- `require_org_admin_to_subscribe`: `Optional` +- `enable_nexla_password_login`: `Optional` +- `description`: `Optional` +- `email`: `Optional` +- `client_identifier`: `Optional` +- `org_webhook_host`: `Optional` +- `default_cluster_id`: `Optional` +- `billing_owner`: `Optional` +- `admins`: `List` +- `org_tier`: `Optional` +- `account_tier_display_name`: `Optional` +- `account_tier_name`: `Optional` +- `email_domain_verified_at`: `Optional` +- `name_verified_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.projects.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.projects.mdx index 461341f..df42c8d 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.projects.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.projects.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Project -Defined in `nexla_sdk/models/projects/responses.py:21` +Defined in `nexla_sdk/models/projects/responses.py:24` Project response model. @@ -21,32 +21,32 @@ Fields: - `org`: `Organization` - `name`: `str` - `description`: `str` -- `access_roles`: `typing.List[str]` -- `data_flows`: `typing.List[nexla_sdk.models.projects.responses.ProjectDataFlow]` -- `flows`: `typing.List[nexla_sdk.models.projects.responses.ProjectDataFlow]` -- `client_identifier`: `typing.Optional[str]` -- `client_url`: `typing.Optional[str]` -- `flows_count`: `typing.Optional[int]` -- `tags`: `typing.List[str]` -- `copied_from_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `access_roles`: `List` +- `data_flows`: `List` +- `flows`: `List` +- `client_identifier`: `Optional` +- `client_url`: `Optional` +- `flows_count`: `Optional` +- `tags`: `List` +- `copied_from_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### ProjectCreate -Defined in `nexla_sdk/models/projects/requests.py:12` +Defined in `nexla_sdk/models/projects/requests.py:15` Request model for creating a project. Fields: - `name`: `str` -- `description`: `typing.Optional[str]` -- `data_flows`: `typing.List[nexla_sdk.models.projects.requests.ProjectFlowIdentifier]` +- `description`: `Optional` +- `data_flows`: `List` ### ProjectDataFlow -Defined in `nexla_sdk/models/projects/responses.py:8` +Defined in `nexla_sdk/models/projects/responses.py:10` Project data flow information. @@ -54,45 +54,45 @@ Fields: - `id`: `int` - `project_id`: `int` -- `data_source_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` -- `data_sink_id`: `typing.Optional[int]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `data_source_id`: `Optional` +- `data_set_id`: `Optional` +- `data_sink_id`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### ProjectFlowIdentifier -Defined in `nexla_sdk/models/projects/requests.py:6` +Defined in `nexla_sdk/models/projects/requests.py:8` Flow identifier for project. Fields: -- `data_source_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` +- `data_source_id`: `Optional` +- `data_set_id`: `Optional` ### ProjectFlowList -Defined in `nexla_sdk/models/projects/requests.py:26` +Defined in `nexla_sdk/models/projects/requests.py:31` Request model for managing project flows. Fields: -- `data_flows`: `typing.Optional[typing.List[nexla_sdk.models.projects.requests.ProjectFlowIdentifier]]` -- `flows`: `typing.Optional[typing.List[int]]` +- `data_flows`: `Optional` +- `flows`: `Optional` ### ProjectUpdate -Defined in `nexla_sdk/models/projects/requests.py:19` +Defined in `nexla_sdk/models/projects/requests.py:23` Request model for updating a project. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `data_flows`: `typing.Optional[typing.List[nexla_sdk.models.projects.requests.ProjectFlowIdentifier]]` +- `name`: `Optional` +- `description`: `Optional` +- `data_flows`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.projects.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.projects.requests.mdx index cba6c17..b8b5ae3 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.projects.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.projects.requests.mdx @@ -10,47 +10,47 @@ keywords: [Nexla, SDK, Python, API] ### ProjectCreate -Defined in `nexla_sdk/models/projects/requests.py:12` +Defined in `nexla_sdk/models/projects/requests.py:15` Request model for creating a project. Fields: - `name`: `str` -- `description`: `typing.Optional[str]` -- `data_flows`: `typing.List[nexla_sdk.models.projects.requests.ProjectFlowIdentifier]` +- `description`: `Optional` +- `data_flows`: `List` ### ProjectFlowIdentifier -Defined in `nexla_sdk/models/projects/requests.py:6` +Defined in `nexla_sdk/models/projects/requests.py:8` Flow identifier for project. Fields: -- `data_source_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` +- `data_source_id`: `Optional` +- `data_set_id`: `Optional` ### ProjectFlowList -Defined in `nexla_sdk/models/projects/requests.py:26` +Defined in `nexla_sdk/models/projects/requests.py:31` Request model for managing project flows. Fields: -- `data_flows`: `typing.Optional[typing.List[nexla_sdk.models.projects.requests.ProjectFlowIdentifier]]` -- `flows`: `typing.Optional[typing.List[int]]` +- `data_flows`: `Optional` +- `flows`: `Optional` ### ProjectUpdate -Defined in `nexla_sdk/models/projects/requests.py:19` +Defined in `nexla_sdk/models/projects/requests.py:23` Request model for updating a project. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `data_flows`: `typing.Optional[typing.List[nexla_sdk.models.projects.requests.ProjectFlowIdentifier]]` +- `name`: `Optional` +- `description`: `Optional` +- `data_flows`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.projects.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.projects.responses.mdx index 72a6ebd..390eff8 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.projects.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.projects.responses.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Project -Defined in `nexla_sdk/models/projects/responses.py:21` +Defined in `nexla_sdk/models/projects/responses.py:24` Project response model. @@ -21,20 +21,20 @@ Fields: - `org`: `Organization` - `name`: `str` - `description`: `str` -- `access_roles`: `typing.List[str]` -- `data_flows`: `typing.List[nexla_sdk.models.projects.responses.ProjectDataFlow]` -- `flows`: `typing.List[nexla_sdk.models.projects.responses.ProjectDataFlow]` -- `client_identifier`: `typing.Optional[str]` -- `client_url`: `typing.Optional[str]` -- `flows_count`: `typing.Optional[int]` -- `tags`: `typing.List[str]` -- `copied_from_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `access_roles`: `List` +- `data_flows`: `List` +- `flows`: `List` +- `client_identifier`: `Optional` +- `client_url`: `Optional` +- `flows_count`: `Optional` +- `tags`: `List` +- `copied_from_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### ProjectDataFlow -Defined in `nexla_sdk/models/projects/responses.py:8` +Defined in `nexla_sdk/models/projects/responses.py:10` Project data flow information. @@ -42,11 +42,11 @@ Fields: - `id`: `int` - `project_id`: `int` -- `data_source_id`: `typing.Optional[int]` -- `data_set_id`: `typing.Optional[int]` -- `data_sink_id`: `typing.Optional[int]` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `data_source_id`: `Optional` +- `data_set_id`: `Optional` +- `data_sink_id`: `Optional` +- `name`: `Optional` +- `description`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.mdx index f950739..0246d4c 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.mdx @@ -18,15 +18,15 @@ Fields: - `id`: `int` - `name`: `str` -- `description`: `typing.Optional[str]` -- `active`: `typing.Optional[bool]` -- `dockerpath`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `description`: `Optional` +- `active`: `Optional` +- `dockerpath`: `Optional` +- `managed`: `Optional` +- `config`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### RuntimeCreate @@ -37,24 +37,24 @@ Create payload for Custom Runtime matching OpenAPI RuntimePayload. Fields: - `name`: `str` -- `description`: `typing.Optional[str]` -- `active`: `typing.Optional[bool]` -- `dockerpath`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `description`: `Optional` +- `active`: `Optional` +- `dockerpath`: `Optional` +- `managed`: `Optional` +- `config`: `Optional` ### RuntimeUpdate -Defined in `nexla_sdk/models/runtimes/requests.py:16` +Defined in `nexla_sdk/models/runtimes/requests.py:17` Update payload for Custom Runtime matching OpenAPI RuntimePayload. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `active`: `typing.Optional[bool]` -- `dockerpath`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `name`: `Optional` +- `description`: `Optional` +- `active`: `Optional` +- `dockerpath`: `Optional` +- `managed`: `Optional` +- `config`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.requests.mdx index 0e2e874..66a4fb5 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.requests.mdx @@ -17,24 +17,24 @@ Create payload for Custom Runtime matching OpenAPI RuntimePayload. Fields: - `name`: `str` -- `description`: `typing.Optional[str]` -- `active`: `typing.Optional[bool]` -- `dockerpath`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `description`: `Optional` +- `active`: `Optional` +- `dockerpath`: `Optional` +- `managed`: `Optional` +- `config`: `Optional` ### RuntimeUpdate -Defined in `nexla_sdk/models/runtimes/requests.py:16` +Defined in `nexla_sdk/models/runtimes/requests.py:17` Update payload for Custom Runtime matching OpenAPI RuntimePayload. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `active`: `typing.Optional[bool]` -- `dockerpath`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `name`: `Optional` +- `description`: `Optional` +- `active`: `Optional` +- `dockerpath`: `Optional` +- `managed`: `Optional` +- `config`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.responses.mdx index ae23a49..ea023a8 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.runtimes.responses.mdx @@ -18,13 +18,13 @@ Fields: - `id`: `int` - `name`: `str` -- `description`: `typing.Optional[str]` -- `active`: `typing.Optional[bool]` -- `dockerpath`: `typing.Optional[str]` -- `managed`: `typing.Optional[bool]` -- `config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `description`: `Optional` +- `active`: `Optional` +- `dockerpath`: `Optional` +- `managed`: `Optional` +- `config`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.self_signup.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.self_signup.mdx index 65beaf7..635ce79 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.self_signup.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.self_signup.mdx @@ -44,10 +44,10 @@ Features: Fields: - `id`: `int` -- `status`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `full_name`: `typing.Optional[str]` -- `invite_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `status`: `Optional` +- `email`: `Optional` +- `full_name`: `Optional` +- `invite_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.self_signup.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.self_signup.responses.mdx index 56ba773..3323573 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.self_signup.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.self_signup.responses.mdx @@ -44,10 +44,10 @@ Features: Fields: - `id`: `int` -- `status`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `full_name`: `typing.Optional[str]` -- `invite_id`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `status`: `Optional` +- `email`: `Optional` +- `full_name`: `Optional` +- `invite_id`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.sources.enums.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.sources.enums.mdx index 8c75a15..5a19f8f 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.sources.enums.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.sources.enums.mdx @@ -12,7 +12,7 @@ Enums for sources. ### FlowType -Defined in `nexla_sdk/models/sources/enums.py:68` +Defined in `nexla_sdk/models/sources/enums.py:72` Flow processing types. @@ -24,7 +24,7 @@ Members: ### IngestMethod -Defined in `nexla_sdk/models/sources/enums.py:59` +Defined in `nexla_sdk/models/sources/enums.py:62` Data ingestion methods. @@ -38,7 +38,7 @@ Members: ### SourceStatus -Defined in `nexla_sdk/models/sources/enums.py:5` +Defined in `nexla_sdk/models/sources/enums.py:6` Source status values. @@ -52,7 +52,7 @@ Members: ### SourceType -Defined in `nexla_sdk/models/sources/enums.py:14` +Defined in `nexla_sdk/models/sources/enums.py:16` Supported source types. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.sources.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.sources.mdx index 254f440..ba6a768 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.sources.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.sources.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### DataSetBrief -Defined in `nexla_sdk/models/sources/responses.py:9` +Defined in `nexla_sdk/models/sources/responses.py:11` Brief dataset information. @@ -19,15 +19,15 @@ Fields: - `id`: `int` - `owner_id`: `int` - `org_id`: `int` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `version`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `name`: `Optional` +- `description`: `Optional` +- `version`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### FlowType -Defined in `nexla_sdk/models/sources/enums.py:68` +Defined in `nexla_sdk/models/sources/enums.py:72` Flow processing types. @@ -39,7 +39,7 @@ Members: ### IngestMethod -Defined in `nexla_sdk/models/sources/enums.py:59` +Defined in `nexla_sdk/models/sources/enums.py:62` Data ingestion methods. @@ -53,7 +53,7 @@ Members: ### RunInfo -Defined in `nexla_sdk/models/sources/responses.py:21` +Defined in `nexla_sdk/models/sources/responses.py:24` Run information. @@ -64,7 +64,7 @@ Fields: ### Source -Defined in `nexla_sdk/models/sources/responses.py:27` +Defined in `nexla_sdk/models/sources/responses.py:31` Data source response model. @@ -74,36 +74,36 @@ Fields: - `name`: `str` - `status`: `str` - `source_type`: `str` -- `connector_type`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `managed`: `typing.Optional[bool]` -- `auto_generated`: `typing.Optional[bool]` -- `connector`: `typing.Optional[nexla_sdk.models.common.Connector]` -- `description`: `typing.Optional[str]` -- `ingest_method`: `typing.Optional[str]` -- `source_format`: `typing.Optional[str]` -- `source_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `poll_schedule`: `typing.Optional[str]` -- `code_container_id`: `typing.Optional[int]` -- `data_credentials_id`: `typing.Optional[int]` -- `data_credentials`: `typing.Optional[nexla_sdk.models.credentials.responses.Credential]` -- `data_sets`: `typing.List[nexla_sdk.models.sources.responses.DataSetBrief]` -- `api_keys`: `typing.List[typing.Dict[str, typing.Any]]` -- `run_ids`: `typing.List[nexla_sdk.models.sources.responses.RunInfo]` -- `copied_from_id`: `typing.Optional[int]` -- `flow_type`: `typing.Optional[str]` -- `has_template`: `typing.Optional[bool]` -- `vendor_endpoint`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `vendor`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `connector_type`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `managed`: `Optional` +- `auto_generated`: `Optional` +- `connector`: `Optional` +- `description`: `Optional` +- `ingest_method`: `Optional` +- `source_format`: `Optional` +- `source_config`: `Optional` +- `poll_schedule`: `Optional` +- `code_container_id`: `Optional` +- `data_credentials_id`: `Optional` +- `data_credentials`: `Optional` +- `data_sets`: `List` +- `api_keys`: `List` +- `run_ids`: `List` +- `copied_from_id`: `Optional` +- `flow_type`: `Optional` +- `has_template`: `Optional` +- `vendor_endpoint`: `Optional` +- `vendor`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### SourceCopyOptions -Defined in `nexla_sdk/models/sources/requests.py:30` +Defined in `nexla_sdk/models/sources/requests.py:34` Options for copying a source. @@ -111,12 +111,12 @@ Fields: - `reuse_data_credentials`: `bool` - `copy_access_controls`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` ### SourceCreate -Defined in `nexla_sdk/models/sources/requests.py:6` +Defined in `nexla_sdk/models/sources/requests.py:8` Request model for creating a source. @@ -124,16 +124,16 @@ Fields: - `name`: `str` - `source_type`: `str` -- `data_credentials_id`: `typing.Optional[int]` -- `description`: `typing.Optional[str]` -- `source_config`: `typing.Optional[typing.Dict]` -- `vendor_endpoint_id`: `typing.Optional[int]` -- `ingest_method`: `typing.Optional[str]` -- `template_config`: `typing.Optional[typing.Dict]` +- `data_credentials_id`: `Optional` +- `description`: `Optional` +- `source_config`: `Optional` +- `vendor_endpoint_id`: `Optional` +- `ingest_method`: `Optional` +- `template_config`: `Optional` ### SourceStatus -Defined in `nexla_sdk/models/sources/enums.py:5` +Defined in `nexla_sdk/models/sources/enums.py:6` Source status values. @@ -147,7 +147,7 @@ Members: ### SourceType -Defined in `nexla_sdk/models/sources/enums.py:14` +Defined in `nexla_sdk/models/sources/enums.py:16` Supported source types. @@ -184,14 +184,14 @@ Members: ### SourceUpdate -Defined in `nexla_sdk/models/sources/requests.py:22` +Defined in `nexla_sdk/models/sources/requests.py:25` Request model for updating a source. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `source_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `description`: `Optional` +- `source_config`: `Optional` +- `data_credentials_id`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.sources.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.sources.requests.mdx index 4268903..4ec9b97 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.sources.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.sources.requests.mdx @@ -12,7 +12,7 @@ Request models for sources. ### SourceCopyOptions -Defined in `nexla_sdk/models/sources/requests.py:30` +Defined in `nexla_sdk/models/sources/requests.py:34` Options for copying a source. @@ -20,12 +20,12 @@ Fields: - `reuse_data_credentials`: `bool` - `copy_access_controls`: `bool` -- `owner_id`: `typing.Optional[int]` -- `org_id`: `typing.Optional[int]` +- `owner_id`: `Optional` +- `org_id`: `Optional` ### SourceCreate -Defined in `nexla_sdk/models/sources/requests.py:6` +Defined in `nexla_sdk/models/sources/requests.py:8` Request model for creating a source. @@ -33,23 +33,23 @@ Fields: - `name`: `str` - `source_type`: `str` -- `data_credentials_id`: `typing.Optional[int]` -- `description`: `typing.Optional[str]` -- `source_config`: `typing.Optional[typing.Dict]` -- `vendor_endpoint_id`: `typing.Optional[int]` -- `ingest_method`: `typing.Optional[str]` -- `template_config`: `typing.Optional[typing.Dict]` +- `data_credentials_id`: `Optional` +- `description`: `Optional` +- `source_config`: `Optional` +- `vendor_endpoint_id`: `Optional` +- `ingest_method`: `Optional` +- `template_config`: `Optional` ### SourceUpdate -Defined in `nexla_sdk/models/sources/requests.py:22` +Defined in `nexla_sdk/models/sources/requests.py:25` Request model for updating a source. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `source_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `description`: `Optional` +- `source_config`: `Optional` +- `data_credentials_id`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.sources.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.sources.responses.mdx index 7bad5d3..ab7155a 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.sources.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.sources.responses.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### DataSetBrief -Defined in `nexla_sdk/models/sources/responses.py:9` +Defined in `nexla_sdk/models/sources/responses.py:11` Brief dataset information. @@ -19,15 +19,15 @@ Fields: - `id`: `int` - `owner_id`: `int` - `org_id`: `int` -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `version`: `typing.Optional[int]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `name`: `Optional` +- `description`: `Optional` +- `version`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### RunInfo -Defined in `nexla_sdk/models/sources/responses.py:21` +Defined in `nexla_sdk/models/sources/responses.py:24` Run information. @@ -38,7 +38,7 @@ Fields: ### Source -Defined in `nexla_sdk/models/sources/responses.py:27` +Defined in `nexla_sdk/models/sources/responses.py:31` Data source response model. @@ -48,30 +48,30 @@ Fields: - `name`: `str` - `status`: `str` - `source_type`: `str` -- `connector_type`: `typing.Optional[str]` -- `owner`: `typing.Optional[nexla_sdk.models.common.Owner]` -- `org`: `typing.Optional[nexla_sdk.models.common.Organization]` -- `access_roles`: `typing.Optional[typing.List[str]]` -- `managed`: `typing.Optional[bool]` -- `auto_generated`: `typing.Optional[bool]` -- `connector`: `typing.Optional[nexla_sdk.models.common.Connector]` -- `description`: `typing.Optional[str]` -- `ingest_method`: `typing.Optional[str]` -- `source_format`: `typing.Optional[str]` -- `source_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `poll_schedule`: `typing.Optional[str]` -- `code_container_id`: `typing.Optional[int]` -- `data_credentials_id`: `typing.Optional[int]` -- `data_credentials`: `typing.Optional[nexla_sdk.models.credentials.responses.Credential]` -- `data_sets`: `typing.List[nexla_sdk.models.sources.responses.DataSetBrief]` -- `api_keys`: `typing.List[typing.Dict[str, typing.Any]]` -- `run_ids`: `typing.List[nexla_sdk.models.sources.responses.RunInfo]` -- `copied_from_id`: `typing.Optional[int]` -- `flow_type`: `typing.Optional[str]` -- `has_template`: `typing.Optional[bool]` -- `vendor_endpoint`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `vendor`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `connector_type`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `managed`: `Optional` +- `auto_generated`: `Optional` +- `connector`: `Optional` +- `description`: `Optional` +- `ingest_method`: `Optional` +- `source_format`: `Optional` +- `source_config`: `Optional` +- `poll_schedule`: `Optional` +- `code_container_id`: `Optional` +- `data_credentials_id`: `Optional` +- `data_credentials`: `Optional` +- `data_sets`: `List` +- `api_keys`: `List` +- `run_ids`: `List` +- `copied_from_id`: `Optional` +- `flow_type`: `Optional` +- `has_template`: `Optional` +- `vendor_endpoint`: `Optional` +- `vendor`: `Optional` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.teams.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.teams.mdx index 11ebd6d..0990e0b 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.teams.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.teams.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Team -Defined in `nexla_sdk/models/teams/responses.py:15` +Defined in `nexla_sdk/models/teams/responses.py:18` Team response model. @@ -22,27 +22,27 @@ Fields: - `owner`: `Owner` - `org`: `Organization` - `member`: `bool` -- `members`: `typing.List[nexla_sdk.models.teams.responses.TeamMember]` -- `access_roles`: `typing.List[str]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `members`: `List` +- `access_roles`: `List` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### TeamCreate -Defined in `nexla_sdk/models/teams/requests.py:14` +Defined in `nexla_sdk/models/teams/requests.py:17` Request model for creating a team. Fields: - `name`: `str` -- `description`: `typing.Optional[str]` -- `members`: `typing.List[nexla_sdk.models.teams.requests.TeamMemberRequest]` +- `description`: `Optional` +- `members`: `List` ### TeamMember -Defined in `nexla_sdk/models/teams/responses.py:8` +Defined in `nexla_sdk/models/teams/responses.py:10` Team member information. @@ -54,35 +54,35 @@ Fields: ### TeamMemberList -Defined in `nexla_sdk/models/teams/requests.py:28` +Defined in `nexla_sdk/models/teams/requests.py:33` Request model for team member operations. Fields: -- `members`: `typing.List[nexla_sdk.models.teams.requests.TeamMemberRequest]` +- `members`: `List` ### TeamMemberRequest -Defined in `nexla_sdk/models/teams/requests.py:6` +Defined in `nexla_sdk/models/teams/requests.py:8` Request model for team member. Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` - `admin`: `bool` ### TeamUpdate -Defined in `nexla_sdk/models/teams/requests.py:21` +Defined in `nexla_sdk/models/teams/requests.py:25` Request model for updating a team. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `members`: `typing.Optional[typing.List[nexla_sdk.models.teams.requests.TeamMemberRequest]]` +- `name`: `Optional` +- `description`: `Optional` +- `members`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.teams.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.teams.requests.mdx index fe22560..dc653a2 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.teams.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.teams.requests.mdx @@ -10,47 +10,47 @@ keywords: [Nexla, SDK, Python, API] ### TeamCreate -Defined in `nexla_sdk/models/teams/requests.py:14` +Defined in `nexla_sdk/models/teams/requests.py:17` Request model for creating a team. Fields: - `name`: `str` -- `description`: `typing.Optional[str]` -- `members`: `typing.List[nexla_sdk.models.teams.requests.TeamMemberRequest]` +- `description`: `Optional` +- `members`: `List` ### TeamMemberList -Defined in `nexla_sdk/models/teams/requests.py:28` +Defined in `nexla_sdk/models/teams/requests.py:33` Request model for team member operations. Fields: -- `members`: `typing.List[nexla_sdk.models.teams.requests.TeamMemberRequest]` +- `members`: `List` ### TeamMemberRequest -Defined in `nexla_sdk/models/teams/requests.py:6` +Defined in `nexla_sdk/models/teams/requests.py:8` Request model for team member. Fields: -- `id`: `typing.Optional[int]` -- `email`: `typing.Optional[str]` +- `id`: `Optional` +- `email`: `Optional` - `admin`: `bool` ### TeamUpdate -Defined in `nexla_sdk/models/teams/requests.py:21` +Defined in `nexla_sdk/models/teams/requests.py:25` Request model for updating a team. Fields: -- `name`: `typing.Optional[str]` -- `description`: `typing.Optional[str]` -- `members`: `typing.Optional[typing.List[nexla_sdk.models.teams.requests.TeamMemberRequest]]` +- `name`: `Optional` +- `description`: `Optional` +- `members`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.teams.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.teams.responses.mdx index 6514ac8..488041f 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.teams.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.teams.responses.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### Team -Defined in `nexla_sdk/models/teams/responses.py:15` +Defined in `nexla_sdk/models/teams/responses.py:18` Team response model. @@ -22,15 +22,15 @@ Fields: - `owner`: `Owner` - `org`: `Organization` - `member`: `bool` -- `members`: `typing.List[nexla_sdk.models.teams.responses.TeamMember]` -- `access_roles`: `typing.List[str]` -- `tags`: `typing.List[str]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `members`: `List` +- `access_roles`: `List` +- `tags`: `List` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### TeamMember -Defined in `nexla_sdk/models/teams/responses.py:8` +Defined in `nexla_sdk/models/teams/responses.py:10` Team member information. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.mdx index 8488770..35806d9 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.mdx @@ -26,26 +26,26 @@ Fields: - `id`: `int` - `name`: `str` -- `resource_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `access_roles`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `runtime_data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `description`: `typing.Optional[str]` -- `code_type`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.transforms.responses.TransformCodeOp]]` -- `managed`: `typing.Optional[bool]` -- `data_sets`: `typing.Optional[typing.List[int]]` -- `copied_from_id`: `typing.Optional[int]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `tags`: `typing.Optional[typing.List[str]]` +- `resource_type`: `Optional` +- `reusable`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `data_credentials`: `Optional` +- `runtime_data_credentials`: `Optional` +- `description`: `Optional` +- `code_type`: `Optional` +- `output_type`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `managed`: `Optional` +- `data_sets`: `Optional` +- `copied_from_id`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` +- `tags`: `Optional` ### TransformCodeOp @@ -63,12 +63,12 @@ Features: Fields: -- `operation`: `typing.Optional[str]` -- `spec`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `operation`: `Optional` +- `spec`: `Optional` ### TransformCreate -Defined in `nexla_sdk/models/transforms/requests.py:7` +Defined in `nexla_sdk/models/transforms/requests.py:8` Base model class with Pydantic functionality and Nexla API compatibility. @@ -87,16 +87,16 @@ Fields: - `reusable`: `bool` - `code_type`: `str` - `code_encoding`: `str` -- `code`: `typing.List[nexla_sdk.models.transforms.responses.TransformCodeOp]` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `code`: `List` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` ### TransformUpdate -Defined in `nexla_sdk/models/transforms/requests.py:22` +Defined in `nexla_sdk/models/transforms/requests.py:23` Base model class with Pydantic functionality and Nexla API compatibility. @@ -110,15 +110,15 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `code_type`: `typing.Optional[str]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.transforms.responses.TransformCodeOp]]` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `output_type`: `Optional` +- `reusable`: `Optional` +- `code_type`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.requests.mdx index 5f9f96e..2029c5a 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.requests.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### TransformCreate -Defined in `nexla_sdk/models/transforms/requests.py:7` +Defined in `nexla_sdk/models/transforms/requests.py:8` Base model class with Pydantic functionality and Nexla API compatibility. @@ -29,16 +29,16 @@ Fields: - `reusable`: `bool` - `code_type`: `str` - `code_encoding`: `str` -- `code`: `typing.List[nexla_sdk.models.transforms.responses.TransformCodeOp]` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `code`: `List` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` ### TransformUpdate -Defined in `nexla_sdk/models/transforms/requests.py:22` +Defined in `nexla_sdk/models/transforms/requests.py:23` Base model class with Pydantic functionality and Nexla API compatibility. @@ -52,15 +52,15 @@ Features: Fields: -- `name`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `code_type`: `typing.Optional[str]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.transforms.responses.TransformCodeOp]]` -- `description`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials_id`: `typing.Optional[int]` -- `runtime_data_credentials_id`: `typing.Optional[int]` +- `name`: `Optional` +- `output_type`: `Optional` +- `reusable`: `Optional` +- `code_type`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `description`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `data_credentials_id`: `Optional` +- `runtime_data_credentials_id`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.responses.mdx index f2db4e8..c29b2cf 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.transforms.responses.mdx @@ -26,26 +26,26 @@ Fields: - `id`: `int` - `name`: `str` -- `resource_type`: `typing.Optional[str]` -- `reusable`: `typing.Optional[bool]` -- `owner`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `org`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `access_roles`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `runtime_data_credentials`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `description`: `typing.Optional[str]` -- `code_type`: `typing.Optional[str]` -- `output_type`: `typing.Optional[str]` -- `code_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `custom_config`: `typing.Optional[typing.Dict[str, typing.Any]]` -- `code_encoding`: `typing.Optional[str]` -- `code`: `typing.Optional[typing.List[nexla_sdk.models.transforms.responses.TransformCodeOp]]` -- `managed`: `typing.Optional[bool]` -- `data_sets`: `typing.Optional[typing.List[int]]` -- `copied_from_id`: `typing.Optional[int]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `tags`: `typing.Optional[typing.List[str]]` +- `resource_type`: `Optional` +- `reusable`: `Optional` +- `owner`: `Optional` +- `org`: `Optional` +- `access_roles`: `Optional` +- `data_credentials`: `Optional` +- `runtime_data_credentials`: `Optional` +- `description`: `Optional` +- `code_type`: `Optional` +- `output_type`: `Optional` +- `code_config`: `Optional` +- `custom_config`: `Optional` +- `code_encoding`: `Optional` +- `code`: `Optional` +- `managed`: `Optional` +- `data_sets`: `Optional` +- `copied_from_id`: `Optional` +- `updated_at`: `Optional` +- `created_at`: `Optional` +- `tags`: `Optional` ### TransformCodeOp @@ -63,6 +63,6 @@ Features: Fields: -- `operation`: `typing.Optional[str]` -- `spec`: `typing.Optional[typing.Dict[str, typing.Any]]` +- `operation`: `Optional` +- `spec`: `Optional` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.users.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.users.mdx index 5fd12ba..df7451a 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.users.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.users.mdx @@ -10,20 +10,20 @@ keywords: [Nexla, SDK, Python, API] ### AccountSummary -Defined in `nexla_sdk/models/users/responses.py:42` +Defined in `nexla_sdk/models/users/responses.py:47` User account summary. Fields: -- `data_sources`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_sets`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_sinks`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_maps`: `typing.Dict[str, typing.Dict[str, int]]` +- `data_sources`: `Dict` +- `data_sets`: `Dict` +- `data_sinks`: `Dict` +- `data_maps`: `Dict` ### DefaultOrg -Defined in `nexla_sdk/models/users/responses.py:7` +Defined in `nexla_sdk/models/users/responses.py:9` User's default organization. @@ -34,7 +34,7 @@ Fields: ### OrgMembership -Defined in `nexla_sdk/models/users/responses.py:13` +Defined in `nexla_sdk/models/users/responses.py:16` Organization membership details. @@ -42,13 +42,13 @@ Fields: - `id`: `int` - `name`: `str` -- `is_admin`: `typing.Optional[bool]` +- `is_admin`: `Optional` - `org_membership_status`: `str` -- `api_key`: `typing.Optional[str]` +- `api_key`: `Optional` ### User -Defined in `nexla_sdk/models/users/responses.py:22` +Defined in `nexla_sdk/models/users/responses.py:26` User response model. @@ -57,22 +57,22 @@ Fields: - `id`: `int` - `email`: `str` - `full_name`: `str` -- `super_user`: `typing.Optional[bool]` +- `super_user`: `Optional` - `impersonated`: `bool` - `default_org`: `DefaultOrg` -- `user_tier`: `typing.Optional[str]` +- `user_tier`: `Optional` - `status`: `str` - `account_locked`: `bool` -- `org_memberships`: `typing.List[nexla_sdk.models.users.responses.OrgMembership]` -- `api_key`: `typing.Optional[str]` -- `email_verified_at`: `typing.Optional[datetime.datetime]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `org_memberships`: `List` +- `api_key`: `Optional` +- `email_verified_at`: `Optional` +- `tos_signed_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### UserCreate -Defined in `nexla_sdk/models/users/requests.py:6` +Defined in `nexla_sdk/models/users/requests.py:7` Request model for creating a user. @@ -80,17 +80,17 @@ Fields: - `full_name`: `str` - `email`: `str` -- `default_org_id`: `typing.Optional[int]` -- `status`: `typing.Optional[str]` -- `user_tier_id`: `typing.Optional[int]` -- `user_tier`: `typing.Optional[str]` -- `password`: `typing.Optional[str]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `admin`: `typing.Union[str, bool, typing.List[typing.Dict[str, typing.Any]], NoneType]` +- `default_org_id`: `Optional` +- `status`: `Optional` +- `user_tier_id`: `Optional` +- `user_tier`: `Optional` +- `password`: `Optional` +- `tos_signed_at`: `Optional` +- `admin`: `Union` ### UserExpanded -Defined in `nexla_sdk/models/users/responses.py:50` +Defined in `nexla_sdk/models/users/responses.py:56` User with expanded account summary. @@ -99,50 +99,50 @@ Fields: - `id`: `int` - `email`: `str` - `full_name`: `str` -- `super_user`: `typing.Optional[bool]` +- `super_user`: `Optional` - `impersonated`: `bool` - `default_org`: `DefaultOrg` -- `user_tier`: `typing.Optional[str]` +- `user_tier`: `Optional` - `status`: `str` - `account_locked`: `bool` -- `org_memberships`: `typing.List[nexla_sdk.models.users.responses.OrgMembership]` -- `api_key`: `typing.Optional[str]` -- `email_verified_at`: `typing.Optional[datetime.datetime]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `account_summary`: `typing.Optional[nexla_sdk.models.users.responses.AccountSummary]` +- `org_memberships`: `List` +- `api_key`: `Optional` +- `email_verified_at`: `Optional` +- `tos_signed_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` +- `account_summary`: `Optional` ### UserSettings -Defined in `nexla_sdk/models/users/responses.py:55` +Defined in `nexla_sdk/models/users/responses.py:62` User settings. Fields: - `id`: `str` -- `owner`: `typing.Dict[str, typing.Any]` -- `org`: `typing.Dict[str, typing.Any]` +- `owner`: `Dict` +- `org`: `Dict` - `user_settings_type`: `str` -- `settings`: `typing.Dict[str, typing.Any]` +- `settings`: `Dict` ### UserUpdate -Defined in `nexla_sdk/models/users/requests.py:19` +Defined in `nexla_sdk/models/users/requests.py:21` Request model for updating a user. Fields: -- `name`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `user_tier_id`: `typing.Optional[int]` -- `user_tier`: `typing.Optional[str]` -- `password`: `typing.Optional[str]` -- `password_confirmation`: `typing.Optional[str]` -- `password_current`: `typing.Optional[str]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `admin`: `typing.Union[str, bool, typing.List[typing.Dict[str, typing.Any]], NoneType]` +- `name`: `Optional` +- `email`: `Optional` +- `status`: `Optional` +- `user_tier_id`: `Optional` +- `user_tier`: `Optional` +- `password`: `Optional` +- `password_confirmation`: `Optional` +- `password_current`: `Optional` +- `tos_signed_at`: `Optional` +- `admin`: `Union` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.users.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.users.requests.mdx index e77798a..b053587 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.users.requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.users.requests.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### UserCreate -Defined in `nexla_sdk/models/users/requests.py:6` +Defined in `nexla_sdk/models/users/requests.py:7` Request model for creating a user. @@ -18,30 +18,30 @@ Fields: - `full_name`: `str` - `email`: `str` -- `default_org_id`: `typing.Optional[int]` -- `status`: `typing.Optional[str]` -- `user_tier_id`: `typing.Optional[int]` -- `user_tier`: `typing.Optional[str]` -- `password`: `typing.Optional[str]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `admin`: `typing.Union[str, bool, typing.List[typing.Dict[str, typing.Any]], NoneType]` +- `default_org_id`: `Optional` +- `status`: `Optional` +- `user_tier_id`: `Optional` +- `user_tier`: `Optional` +- `password`: `Optional` +- `tos_signed_at`: `Optional` +- `admin`: `Union` ### UserUpdate -Defined in `nexla_sdk/models/users/requests.py:19` +Defined in `nexla_sdk/models/users/requests.py:21` Request model for updating a user. Fields: -- `name`: `typing.Optional[str]` -- `email`: `typing.Optional[str]` -- `status`: `typing.Optional[str]` -- `user_tier_id`: `typing.Optional[int]` -- `user_tier`: `typing.Optional[str]` -- `password`: `typing.Optional[str]` -- `password_confirmation`: `typing.Optional[str]` -- `password_current`: `typing.Optional[str]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `admin`: `typing.Union[str, bool, typing.List[typing.Dict[str, typing.Any]], NoneType]` +- `name`: `Optional` +- `email`: `Optional` +- `status`: `Optional` +- `user_tier_id`: `Optional` +- `user_tier`: `Optional` +- `password`: `Optional` +- `password_confirmation`: `Optional` +- `password_current`: `Optional` +- `tos_signed_at`: `Optional` +- `admin`: `Union` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.users.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.users.responses.mdx index 9de867a..46d26b2 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.models.users.responses.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.users.responses.mdx @@ -10,20 +10,20 @@ keywords: [Nexla, SDK, Python, API] ### AccountSummary -Defined in `nexla_sdk/models/users/responses.py:42` +Defined in `nexla_sdk/models/users/responses.py:47` User account summary. Fields: -- `data_sources`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_sets`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_sinks`: `typing.Dict[str, typing.Dict[str, int]]` -- `data_maps`: `typing.Dict[str, typing.Dict[str, int]]` +- `data_sources`: `Dict` +- `data_sets`: `Dict` +- `data_sinks`: `Dict` +- `data_maps`: `Dict` ### DefaultOrg -Defined in `nexla_sdk/models/users/responses.py:7` +Defined in `nexla_sdk/models/users/responses.py:9` User's default organization. @@ -34,7 +34,7 @@ Fields: ### OrgMembership -Defined in `nexla_sdk/models/users/responses.py:13` +Defined in `nexla_sdk/models/users/responses.py:16` Organization membership details. @@ -42,13 +42,13 @@ Fields: - `id`: `int` - `name`: `str` -- `is_admin`: `typing.Optional[bool]` +- `is_admin`: `Optional` - `org_membership_status`: `str` -- `api_key`: `typing.Optional[str]` +- `api_key`: `Optional` ### User -Defined in `nexla_sdk/models/users/responses.py:22` +Defined in `nexla_sdk/models/users/responses.py:26` User response model. @@ -57,22 +57,22 @@ Fields: - `id`: `int` - `email`: `str` - `full_name`: `str` -- `super_user`: `typing.Optional[bool]` +- `super_user`: `Optional` - `impersonated`: `bool` - `default_org`: `DefaultOrg` -- `user_tier`: `typing.Optional[str]` +- `user_tier`: `Optional` - `status`: `str` - `account_locked`: `bool` -- `org_memberships`: `typing.List[nexla_sdk.models.users.responses.OrgMembership]` -- `api_key`: `typing.Optional[str]` -- `email_verified_at`: `typing.Optional[datetime.datetime]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` +- `org_memberships`: `List` +- `api_key`: `Optional` +- `email_verified_at`: `Optional` +- `tos_signed_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` ### UserExpanded -Defined in `nexla_sdk/models/users/responses.py:50` +Defined in `nexla_sdk/models/users/responses.py:56` User with expanded account summary. @@ -81,31 +81,31 @@ Fields: - `id`: `int` - `email`: `str` - `full_name`: `str` -- `super_user`: `typing.Optional[bool]` +- `super_user`: `Optional` - `impersonated`: `bool` - `default_org`: `DefaultOrg` -- `user_tier`: `typing.Optional[str]` +- `user_tier`: `Optional` - `status`: `str` - `account_locked`: `bool` -- `org_memberships`: `typing.List[nexla_sdk.models.users.responses.OrgMembership]` -- `api_key`: `typing.Optional[str]` -- `email_verified_at`: `typing.Optional[datetime.datetime]` -- `tos_signed_at`: `typing.Optional[datetime.datetime]` -- `created_at`: `typing.Optional[datetime.datetime]` -- `updated_at`: `typing.Optional[datetime.datetime]` -- `account_summary`: `typing.Optional[nexla_sdk.models.users.responses.AccountSummary]` +- `org_memberships`: `List` +- `api_key`: `Optional` +- `email_verified_at`: `Optional` +- `tos_signed_at`: `Optional` +- `created_at`: `Optional` +- `updated_at`: `Optional` +- `account_summary`: `Optional` ### UserSettings -Defined in `nexla_sdk/models/users/responses.py:55` +Defined in `nexla_sdk/models/users/responses.py:62` User settings. Fields: - `id`: `str` -- `owner`: `typing.Dict[str, typing.Any]` -- `org`: `typing.Dict[str, typing.Any]` +- `owner`: `Dict` +- `org`: `Dict` - `user_settings_type`: `str` -- `settings`: `typing.Dict[str, typing.Any]` +- `settings`: `Dict` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.mdx new file mode 100644 index 0000000..35d0c95 --- /dev/null +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.mdx @@ -0,0 +1,50 @@ +--- +id: nexla_sdk.models.webhooks +title: nexla_sdk.models.webhooks +slug: /api/python/modules/nexla_sdk/models/webhooks +description: API for nexla_sdk.models.webhooks +keywords: [Nexla, SDK, Python, API] +--- + +Webhook models. + +## Classes + +### WebhookResponse + +Defined in `nexla_sdk/models/webhooks/responses.py:8` + +Response from sending data to a webhook. + +Attributes: + dataset_id: Nexset ID of the Nexset receiving the record(s). + processed: Number of records successfully processed. + +Fields: + +- `dataset_id`: `Optional` +- `processed`: `Optional` + +### WebhookSendOptions + +Defined in `nexla_sdk/models/webhooks/requests.py:8` + +Options for sending data to a webhook. + +Attributes: + include_headers: Include custom headers in ingested records. + Custom headers will be added as `header_` attributes. + Standard headers like `Authorization` and `Content-Type` are ignored. + include_url_params: Include custom query parameters in ingested records. + Custom params will be added as `url_param_` attributes. + Standard params like `api_key` are ignored. + force_schema_detection: Force schema detection for this record. + Normally, schema detection only happens for the first few records. + Set to True to force detection on every record. + +Fields: + +- `include_headers`: `Optional` +- `include_url_params`: `Optional` +- `force_schema_detection`: `Optional` + diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.requests.mdx new file mode 100644 index 0000000..b6229f9 --- /dev/null +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.requests.mdx @@ -0,0 +1,35 @@ +--- +id: nexla_sdk.models.webhooks.requests +title: nexla_sdk.models.webhooks.requests +slug: /api/python/modules/nexla_sdk/models/webhooks/requests +description: API for nexla_sdk.models.webhooks.requests +keywords: [Nexla, SDK, Python, API] +--- + +Webhook request models. + +## Classes + +### WebhookSendOptions + +Defined in `nexla_sdk/models/webhooks/requests.py:8` + +Options for sending data to a webhook. + +Attributes: + include_headers: Include custom headers in ingested records. + Custom headers will be added as `header_` attributes. + Standard headers like `Authorization` and `Content-Type` are ignored. + include_url_params: Include custom query parameters in ingested records. + Custom params will be added as `url_param_` attributes. + Standard params like `api_key` are ignored. + force_schema_detection: Force schema detection for this record. + Normally, schema detection only happens for the first few records. + Set to True to force detection on every record. + +Fields: + +- `include_headers`: `Optional` +- `include_url_params`: `Optional` +- `force_schema_detection`: `Optional` + diff --git a/docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.responses.mdx b/docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.responses.mdx new file mode 100644 index 0000000..cc9bbcc --- /dev/null +++ b/docs-site/docs/api/python/modules/nexla_sdk.models.webhooks.responses.mdx @@ -0,0 +1,27 @@ +--- +id: nexla_sdk.models.webhooks.responses +title: nexla_sdk.models.webhooks.responses +slug: /api/python/modules/nexla_sdk/models/webhooks/responses +description: API for nexla_sdk.models.webhooks.responses +keywords: [Nexla, SDK, Python, API] +--- + +Webhook response models. + +## Classes + +### WebhookResponse + +Defined in `nexla_sdk/models/webhooks/responses.py:8` + +Response from sending data to a webhook. + +Attributes: + dataset_id: Nexset ID of the Nexset receiving the record(s). + processed: Number of records successfully processed. + +Fields: + +- `dataset_id`: `Optional` +- `processed`: `Optional` + diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.approval_requests.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.approval_requests.mdx index 514fffa..aebacdc 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.approval_requests.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.approval_requests.mdx @@ -10,18 +10,18 @@ keywords: [Nexla, SDK, Python, API] ### ApprovalRequestsResource -Defined in `nexla_sdk/resources/approval_requests.py:6` +Defined in `nexla_sdk/resources/approval_requests.py:7` Resource for managing approval requests. Methods: - `approve(self, request_id: int) -> nexla_sdk.models.approval_requests.responses.ApprovalRequest` - - Source: `nexla_sdk/resources/approval_requests.py:24` + - Source: `nexla_sdk/resources/approval_requests.py:25` - `list_pending(self) -> List[nexla_sdk.models.approval_requests.responses.ApprovalRequest]` - - Source: `nexla_sdk/resources/approval_requests.py:14` + - Source: `nexla_sdk/resources/approval_requests.py:15` - `list_requested(self) -> List[nexla_sdk.models.approval_requests.responses.ApprovalRequest]` - - Source: `nexla_sdk/resources/approval_requests.py:19` + - Source: `nexla_sdk/resources/approval_requests.py:20` - `reject(self, request_id: int, reason: str = '') -> nexla_sdk.models.approval_requests.responses.ApprovalRequest` - - Source: `nexla_sdk/resources/approval_requests.py:29` + - Source: `nexla_sdk/resources/approval_requests.py:30` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.async_tasks.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.async_tasks.mdx index dcb2ecb..4893f6f 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.async_tasks.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.async_tasks.mdx @@ -10,38 +10,38 @@ keywords: [Nexla, SDK, Python, API] ### AsyncTasksResource -Defined in `nexla_sdk/resources/async_tasks.py:7` +Defined in `nexla_sdk/resources/async_tasks.py:8` Resource for managing asynchronous tasks. Methods: - `acknowledge(self, task_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/async_tasks.py:72` + - Source: `nexla_sdk/resources/async_tasks.py:73` - `create(self, payload: nexla_sdk.models.async_tasks.requests.AsyncTaskCreate) -> nexla_sdk.models.async_tasks.responses.AsyncTask` - - Source: `nexla_sdk/resources/async_tasks.py:20` + - Source: `nexla_sdk/resources/async_tasks.py:21` - Create/start an asynchronous task. - `delete(self, task_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/async_tasks.py:49` + - Source: `nexla_sdk/resources/async_tasks.py:50` - Delete resource. - `download_link(self, task_id: int) -> Union[str, nexla_sdk.models.async_tasks.responses.DownloadLink]` - - Source: `nexla_sdk/resources/async_tasks.py:62` + - Source: `nexla_sdk/resources/async_tasks.py:63` - `explain_arguments(self, task_type: str) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/async_tasks.py:40` + - Source: `nexla_sdk/resources/async_tasks.py:41` - `get(self, task_id: int) -> nexla_sdk.models.async_tasks.responses.AsyncTask` - - Source: `nexla_sdk/resources/async_tasks.py:44` + - Source: `nexla_sdk/resources/async_tasks.py:45` - Get single resource by ID. - `list(self) -> List[nexla_sdk.models.async_tasks.responses.AsyncTask]` - - Source: `nexla_sdk/resources/async_tasks.py:15` + - Source: `nexla_sdk/resources/async_tasks.py:16` - List asynchronous tasks. - `list_by_status(self, status: str) -> List[nexla_sdk.models.async_tasks.responses.AsyncTask]` - - Source: `nexla_sdk/resources/async_tasks.py:31` + - Source: `nexla_sdk/resources/async_tasks.py:32` - `list_of_type(self, task_type: str) -> List[nexla_sdk.models.async_tasks.responses.AsyncTask]` - - Source: `nexla_sdk/resources/async_tasks.py:26` + - Source: `nexla_sdk/resources/async_tasks.py:27` - `rerun(self, task_id: int) -> nexla_sdk.models.async_tasks.responses.AsyncTask` - - Source: `nexla_sdk/resources/async_tasks.py:53` + - Source: `nexla_sdk/resources/async_tasks.py:54` - `result(self, task_id: int) -> Optional[Dict[str, Any]]` - - Source: `nexla_sdk/resources/async_tasks.py:58` + - Source: `nexla_sdk/resources/async_tasks.py:59` - `types(self) -> List[str]` - - Source: `nexla_sdk/resources/async_tasks.py:36` + - Source: `nexla_sdk/resources/async_tasks.py:37` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.attribute_transforms.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.attribute_transforms.mdx index 49cf93f..aae13d2 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.attribute_transforms.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.attribute_transforms.mdx @@ -10,28 +10,28 @@ keywords: [Nexla, SDK, Python, API] ### AttributeTransformsResource -Defined in `nexla_sdk/resources/attribute_transforms.py:9` +Defined in `nexla_sdk/resources/attribute_transforms.py:11` Resource for reusable attribute transforms (aliased to code containers). Methods: - `create(self, data: nexla_sdk.models.attribute_transforms.requests.AttributeTransformCreate) -> nexla_sdk.models.attribute_transforms.responses.AttributeTransform` - - Source: `nexla_sdk/resources/attribute_transforms.py:39` + - Source: `nexla_sdk/resources/attribute_transforms.py:43` - Create a new attribute transform. - `delete(self, attribute_transform_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/attribute_transforms.py:47` + - Source: `nexla_sdk/resources/attribute_transforms.py:53` - Delete an attribute transform by ID. - `get(self, attribute_transform_id: int, expand: bool = False) -> nexla_sdk.models.attribute_transforms.responses.AttributeTransform` - - Source: `nexla_sdk/resources/attribute_transforms.py:35` + - Source: `nexla_sdk/resources/attribute_transforms.py:37` - Get an attribute transform by ID. - `list(self, **kwargs) -> List[nexla_sdk.models.attribute_transforms.responses.AttributeTransform]` - - Source: `nexla_sdk/resources/attribute_transforms.py:17` + - Source: `nexla_sdk/resources/attribute_transforms.py:19` - List attribute transforms with optional filters. - `list_public(self) -> List[nexla_sdk.models.attribute_transforms.responses.AttributeTransform]` - - Source: `nexla_sdk/resources/attribute_transforms.py:51` + - Source: `nexla_sdk/resources/attribute_transforms.py:57` - List publicly shared attribute transforms. - `update(self, attribute_transform_id: int, data: nexla_sdk.models.attribute_transforms.requests.AttributeTransformUpdate) -> nexla_sdk.models.attribute_transforms.responses.AttributeTransform` - - Source: `nexla_sdk/resources/attribute_transforms.py:43` + - Source: `nexla_sdk/resources/attribute_transforms.py:47` - Update an attribute transform by ID. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.base_resource.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.base_resource.mdx index 46397b8..c04f36f 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.base_resource.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.base_resource.mdx @@ -10,52 +10,52 @@ keywords: [Nexla, SDK, Python, API] ### BaseResource -Defined in `nexla_sdk/resources/base_resource.py:12` +Defined in `nexla_sdk/resources/base_resource.py:15` Base class for all Nexla resources. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.code_containers.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.code_containers.mdx index 65fe693..a678fcc 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.code_containers.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.code_containers.mdx @@ -10,31 +10,31 @@ keywords: [Nexla, SDK, Python, API] ### CodeContainersResource -Defined in `nexla_sdk/resources/code_containers.py:7` +Defined in `nexla_sdk/resources/code_containers.py:11` Resource for managing code containers. Methods: - `copy(self, code_container_id: int) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:61` + - Source: `nexla_sdk/resources/code_containers.py:67` - Copy a code container by ID. - `create(self, data: nexla_sdk.models.code_containers.requests.CodeContainerCreate) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:41` + - Source: `nexla_sdk/resources/code_containers.py:45` - Create a new code container. - `delete(self, code_container_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/code_containers.py:57` + - Source: `nexla_sdk/resources/code_containers.py:63` - Delete a code container by ID. - `get(self, code_container_id: int, expand: bool = False) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:33` + - Source: `nexla_sdk/resources/code_containers.py:37` - Get a code container by ID. - `list(self, **kwargs) -> List[nexla_sdk.models.code_containers.responses.CodeContainer]` - - Source: `nexla_sdk/resources/code_containers.py:15` + - Source: `nexla_sdk/resources/code_containers.py:19` - List code containers with optional filters. - `list_public(self) -> List[nexla_sdk.models.code_containers.responses.CodeContainer]` - - Source: `nexla_sdk/resources/code_containers.py:65` + - Source: `nexla_sdk/resources/code_containers.py:71` - List publicly shared code containers. - `update(self, code_container_id: int, data: nexla_sdk.models.code_containers.requests.CodeContainerUpdate) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:49` + - Source: `nexla_sdk/resources/code_containers.py:53` - Update an existing code container. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.credentials.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.credentials.mdx index 2ea31ad..4a2c7b1 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.credentials.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.credentials.mdx @@ -12,34 +12,34 @@ Credentials resource implementation. ### CredentialsResource -Defined in `nexla_sdk/resources/credentials.py:10` +Defined in `nexla_sdk/resources/credentials.py:19` Resource for managing data credentials. Methods: - `create(self, data: nexla_sdk.models.credentials.requests.CredentialCreate) -> nexla_sdk.models.credentials.responses.Credential` - - Source: `nexla_sdk/resources/credentials.py:66` + - Source: `nexla_sdk/resources/credentials.py:75` - Create new credential. - `delete(self, credential_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/credentials.py:96` + - Source: `nexla_sdk/resources/credentials.py:105` - Delete credential. - `get(self, credential_id: int, expand: bool = False) -> nexla_sdk.models.credentials.responses.Credential` - - Source: `nexla_sdk/resources/credentials.py:50` + - Source: `nexla_sdk/resources/credentials.py:59` - Get single credential by ID. - `list(self, credentials_type: Optional[str] = None, **kwargs) -> List[nexla_sdk.models.credentials.responses.Credential]` - - Source: `nexla_sdk/resources/credentials.py:18` + - Source: `nexla_sdk/resources/credentials.py:27` - List credentials with optional filters. - `probe(self, credential_id: int, async_mode: bool = False, request_id: Optional[int] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/credentials.py:108` + - Source: `nexla_sdk/resources/credentials.py:117` - Test credential validity. - `probe_sample(self, credential_id: int, request: nexla_sdk.models.credentials.requests.ProbeSampleRequest, async_mode: bool = False, request_id: Optional[int] = None) -> nexla_sdk.models.credentials.responses.ProbeSampleResponse` - - Source: `nexla_sdk/resources/credentials.py:158` + - Source: `nexla_sdk/resources/credentials.py:183` - Preview data content accessible by credential. - `probe_tree(self, credential_id: int, request: nexla_sdk.models.credentials.requests.ProbeTreeRequest, async_mode: bool = False, request_id: Optional[int] = None) -> nexla_sdk.models.credentials.responses.ProbeTreeResponse` - - Source: `nexla_sdk/resources/credentials.py:134` + - Source: `nexla_sdk/resources/credentials.py:155` - Preview storage structure accessible by credential. - `update(self, credential_id: int, data: nexla_sdk.models.credentials.requests.CredentialUpdate) -> nexla_sdk.models.credentials.responses.Credential` - - Source: `nexla_sdk/resources/credentials.py:83` + - Source: `nexla_sdk/resources/credentials.py:92` - Update credential. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.data_schemas.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.data_schemas.mdx index ddc173e..80a325e 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.data_schemas.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.data_schemas.mdx @@ -10,13 +10,13 @@ keywords: [Nexla, SDK, Python, API] ### DataSchemasResource -Defined in `nexla_sdk/resources/data_schemas.py:6` +Defined in `nexla_sdk/resources/data_schemas.py:7` Resource for data schemas (accessors + audit log only). Methods: - `get_audit_log(self, schema_id: int, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/data_schemas.py:14` + - Source: `nexla_sdk/resources/data_schemas.py:15` - Get audit log for resource. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.destinations.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.destinations.mdx index 3c5c16e..ce582ca 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.destinations.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.destinations.mdx @@ -10,34 +10,34 @@ keywords: [Nexla, SDK, Python, API] ### DestinationsResource -Defined in `nexla_sdk/resources/destinations.py:7` +Defined in `nexla_sdk/resources/destinations.py:12` Resource for managing destinations (data sinks). Methods: - `activate(self, sink_id: int) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:89` + - Source: `nexla_sdk/resources/destinations.py:94` - Activate destination. - `copy(self, sink_id: int, options: Optional[nexla_sdk.models.destinations.requests.DestinationCopyOptions] = None) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:113` + - Source: `nexla_sdk/resources/destinations.py:118` - Copy a destination. - `create(self, data: nexla_sdk.models.destinations.requests.DestinationCreate) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:49` + - Source: `nexla_sdk/resources/destinations.py:54` - Create new destination. - `delete(self, sink_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/destinations.py:77` + - Source: `nexla_sdk/resources/destinations.py:82` - Delete destination. - `get(self, sink_id: int, expand: bool = False) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:33` + - Source: `nexla_sdk/resources/destinations.py:38` - Get single destination by ID. - `list(self, **kwargs) -> List[nexla_sdk.models.destinations.responses.Destination]` - - Source: `nexla_sdk/resources/destinations.py:15` + - Source: `nexla_sdk/resources/destinations.py:20` - List destinations with optional filters. - `pause(self, sink_id: int) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:101` + - Source: `nexla_sdk/resources/destinations.py:106` - Pause destination. - `update(self, sink_id: int, data: nexla_sdk.models.destinations.requests.DestinationUpdate) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:64` + - Source: `nexla_sdk/resources/destinations.py:69` - Update destination. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.doc_containers.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.doc_containers.mdx index 73a119b..3f4b45e 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.doc_containers.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.doc_containers.mdx @@ -10,13 +10,13 @@ keywords: [Nexla, SDK, Python, API] ### DocContainersResource -Defined in `nexla_sdk/resources/doc_containers.py:6` +Defined in `nexla_sdk/resources/doc_containers.py:7` Resource for document containers accessors and audit logs. Methods: - `get_audit_log(self, doc_container_id: int, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/doc_containers.py:14` + - Source: `nexla_sdk/resources/doc_containers.py:15` - Get audit log for resource. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.flows.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.flows.mdx index 9a2dcc6..3f36fc8 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.flows.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.flows.mdx @@ -10,49 +10,64 @@ keywords: [Nexla, SDK, Python, API] ### FlowsResource -Defined in `nexla_sdk/resources/flows.py:7` +Defined in `nexla_sdk/resources/flows.py:21` Resource for managing data flows. Methods: - `activate(self, flow_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:83` + - Source: `nexla_sdk/resources/flows.py:117` - Activate a flow. -- `activate_by_resource(self, resource_type: str, resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:164` +- `activate_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:314` - Activate flow by resource ID. - `copy(self, flow_id: int, options: Optional[nexla_sdk.models.flows.requests.FlowCopyOptions] = None) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:125` + - Source: `nexla_sdk/resources/flows.py:171` - Copy a flow. +- `copy_and_replace_credentials(self, flow_id: int, resource_credential_mapping: Dict[int, int], copy_options: Optional[nexla_sdk.models.flows.requests.FlowCopyOptions] = None, target_project_id: Optional[int] = None) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:186` + - Copy a flow and replace credentials on specified resources. - `delete(self, flow_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:138` + - Source: `nexla_sdk/resources/flows.py:282` - Delete flow. -- `delete_by_resource(self, resource_type: str, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:150` +- `delete_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:294` - Delete flow by resource ID. -- `docs_recommendation(self, flow_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:216` +- `docs_recommendation(self, flow_id: int) -> Union[nexla_sdk.models.flows.responses.DocsRecommendation, Dict[str, Any]]` + - Source: `nexla_sdk/resources/flows.py:378` - Generate AI suggestion for flow documentation. -- `get(self, flow_id: int, flows_only: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:46` +- `get(self, flow_id: int, flows_only: bool = False, include_run_metrics: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:67` - Get flow by ID. -- `get_by_resource(self, resource_type: str, resource_id: int, flows_only: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:62` +- `get_active_flows_metrics(self, from_date: str = None, to_date: str = None, org_id: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:475` + - Get metrics for currently active flows. +- `get_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, flows_only: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:90` - Get flow by resource ID. -- `get_logs(self, resource_type: str, resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:221` +- `get_flow_logs(self, flow_id: int, from_date: str = None, to_date: str = None, severity: str = None, run_id: int = None, page: int = None, per_page: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:397` + - Get execution logs for a specific flow. +- `get_logs(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.flows.responses.FlowLogsResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/flows.py:529` - Get flow execution logs for a specific run id of a flow. -- `get_metrics(self, resource_type: str, resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:243` +- `get_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.flows.responses.FlowMetricsApiResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/flows.py:581` - Get flow metrics for a flow node keyed by resource id. -- `list(self, flows_only: bool = False, include_run_metrics: bool = False, **kwargs) -> List[nexla_sdk.models.flows.responses.FlowResponse]` - - Source: `nexla_sdk/resources/flows.py:15` +- `get_run_status(self, flow_id: int, run_id: int) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:499` + - Get status of a specific flow run. +- `list(self, flows_only: bool = False, include_run_metrics: bool = False, access_role: Optional[str] = None, **kwargs) -> List[nexla_sdk.models.flows.responses.FlowResponse]` + - Source: `nexla_sdk/resources/flows.py:29` - List flows with optional filters. -- `pause(self, flow_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:104` +- `pause(self, flow_id: int, all: bool = False, full_tree: bool = False, async_mode: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:140` - Pause a flow. -- `pause_by_resource(self, resource_type: str, resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:190` +- `pause_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:346` - Pause flow by resource ID. +- `search_flow_logs(self, flow_id: int, run_ids: str = None, severity: str = None, search_string: str = None, from_date: str = None, to_date: str = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:438` + - Advanced search for flow execution logs. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.genai.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.genai.mdx index 3901502..fb62b16 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.genai.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.genai.mdx @@ -10,30 +10,30 @@ keywords: [Nexla, SDK, Python, API] ### GenAIResource -Defined in `nexla_sdk/resources/genai.py:9` +Defined in `nexla_sdk/resources/genai.py:16` Resource for GenAI configurations and org settings. Methods: - `create_config(self, payload: nexla_sdk.models.genai.requests.GenAiConfigCreatePayload) -> nexla_sdk.models.genai.responses.GenAiConfig` - - Source: `nexla_sdk/resources/genai.py:22` + - Source: `nexla_sdk/resources/genai.py:29` - `create_org_setting(self, payload: nexla_sdk.models.genai.requests.GenAiOrgSettingPayload) -> nexla_sdk.models.genai.responses.GenAiOrgSetting` - - Source: `nexla_sdk/resources/genai.py:49` + - Source: `nexla_sdk/resources/genai.py:66` - `delete_config(self, gen_ai_config_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/genai.py:36` + - Source: `nexla_sdk/resources/genai.py:49` - `delete_org_setting(self, gen_ai_org_setting_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/genai.py:58` + - Source: `nexla_sdk/resources/genai.py:77` - `get_config(self, gen_ai_config_id: int) -> nexla_sdk.models.genai.responses.GenAiConfig` - - Source: `nexla_sdk/resources/genai.py:27` + - Source: `nexla_sdk/resources/genai.py:34` - `get_org_setting(self, gen_ai_org_setting_id: int) -> nexla_sdk.models.genai.responses.GenAiOrgSetting` - - Source: `nexla_sdk/resources/genai.py:54` + - Source: `nexla_sdk/resources/genai.py:71` - `list_configs(self) -> List[nexla_sdk.models.genai.responses.GenAiConfig]` - - Source: `nexla_sdk/resources/genai.py:18` + - Source: `nexla_sdk/resources/genai.py:25` - `list_org_settings(self, org_id: int = None, all: bool = False) -> List[nexla_sdk.models.genai.responses.GenAiOrgSetting]` - - Source: `nexla_sdk/resources/genai.py:40` + - Source: `nexla_sdk/resources/genai.py:55` - `show_active_config(self, gen_ai_usage: str) -> nexla_sdk.models.genai.responses.ActiveConfigView` - - Source: `nexla_sdk/resources/genai.py:61` + - Source: `nexla_sdk/resources/genai.py:82` - `update_config(self, gen_ai_config_id: int, payload: nexla_sdk.models.genai.requests.GenAiConfigPayload) -> nexla_sdk.models.genai.responses.GenAiConfig` - - Source: `nexla_sdk/resources/genai.py:31` + - Source: `nexla_sdk/resources/genai.py:40` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.lookups.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.lookups.mdx index a911275..91cb30c 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.lookups.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.lookups.mdx @@ -12,34 +12,34 @@ Lookups resource implementation. ### LookupsResource -Defined in `nexla_sdk/resources/lookups.py:8` +Defined in `nexla_sdk/resources/lookups.py:14` Resource for managing lookups (data maps). Methods: - `create(self, data: nexla_sdk.models.lookups.requests.LookupCreate) -> nexla_sdk.models.lookups.responses.Lookup` - - Source: `nexla_sdk/resources/lookups.py:50` + - Source: `nexla_sdk/resources/lookups.py:56` - Create new lookup. - `delete(self, data_map_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/lookups.py:78` + - Source: `nexla_sdk/resources/lookups.py:84` - Delete lookup. - `delete_entries(self, data_map_id: int, entry_keys: Union[str, List[str]]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/lookups.py:131` + - Source: `nexla_sdk/resources/lookups.py:137` - Delete specific entries from a lookup. - `get(self, data_map_id: int, expand: bool = False) -> nexla_sdk.models.lookups.responses.Lookup` - - Source: `nexla_sdk/resources/lookups.py:34` + - Source: `nexla_sdk/resources/lookups.py:40` - Get single lookup by ID. - `get_entries(self, data_map_id: int, entry_keys: Union[str, List[str]]) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/lookups.py:110` + - Source: `nexla_sdk/resources/lookups.py:116` - Get specific entries from a lookup. - `list(self, **kwargs) -> List[nexla_sdk.models.lookups.responses.Lookup]` - - Source: `nexla_sdk/resources/lookups.py:16` + - Source: `nexla_sdk/resources/lookups.py:22` - List lookups with optional filters. - `update(self, data_map_id: int, data: nexla_sdk.models.lookups.requests.LookupUpdate) -> nexla_sdk.models.lookups.responses.Lookup` - - Source: `nexla_sdk/resources/lookups.py:65` + - Source: `nexla_sdk/resources/lookups.py:71` - Update lookup. - `upsert_entries(self, data_map_id: int, entries: List[Dict[str, Any]]) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/lookups.py:90` + - Source: `nexla_sdk/resources/lookups.py:96` - Upsert entries in a lookup. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.marketplace.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.marketplace.mdx index d1119d5..4f31047 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.marketplace.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.marketplace.mdx @@ -10,36 +10,36 @@ keywords: [Nexla, SDK, Python, API] ### MarketplaceResource -Defined in `nexla_sdk/resources/marketplace.py:11` +Defined in `nexla_sdk/resources/marketplace.py:16` Resource for marketplace domains and items. Methods: - `add_domain_custodians(self, domain_id: int, payload: nexla_sdk.models.marketplace.requests.CustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/marketplace.py:70` + - Source: `nexla_sdk/resources/marketplace.py:91` - `create_domain(self, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainCreate) -> nexla_sdk.models.marketplace.responses.MarketplaceDomain` - - Source: `nexla_sdk/resources/marketplace.py:42` + - Source: `nexla_sdk/resources/marketplace.py:53` - `create_domain_item(self, domain_id: int, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainsItemCreate) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomainsItem]` - - Source: `nexla_sdk/resources/marketplace.py:55` + - Source: `nexla_sdk/resources/marketplace.py:66` - `create_domains(self, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainCreate) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomain]` - - Source: `nexla_sdk/resources/marketplace.py:24` + - Source: `nexla_sdk/resources/marketplace.py:29` - `delete_domain(self, domain_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/marketplace.py:47` + - Source: `nexla_sdk/resources/marketplace.py:58` - `get_domain(self, domain_id: int) -> nexla_sdk.models.marketplace.responses.MarketplaceDomain` - - Source: `nexla_sdk/resources/marketplace.py:33` + - Source: `nexla_sdk/resources/marketplace.py:40` - `get_domains_for_org(self, org_id: int) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomain]` - - Source: `nexla_sdk/resources/marketplace.py:29` + - Source: `nexla_sdk/resources/marketplace.py:34` - `list_domain_custodians(self, domain_id: int) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/marketplace.py:61` + - Source: `nexla_sdk/resources/marketplace.py:76` - `list_domain_items(self, domain_id: int) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomainsItem]` - - Source: `nexla_sdk/resources/marketplace.py:51` + - Source: `nexla_sdk/resources/marketplace.py:62` - `list_domains(self) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomain]` - - Source: `nexla_sdk/resources/marketplace.py:20` + - Source: `nexla_sdk/resources/marketplace.py:25` - `remove_domain_custodians(self, domain_id: int, payload: nexla_sdk.models.marketplace.requests.CustodiansPayload) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/marketplace.py:75` + - Source: `nexla_sdk/resources/marketplace.py:100` - `update_domain(self, domain_id: int, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainCreate) -> nexla_sdk.models.marketplace.responses.MarketplaceDomain` - - Source: `nexla_sdk/resources/marketplace.py:37` + - Source: `nexla_sdk/resources/marketplace.py:44` - `update_domain_custodians(self, domain_id: int, payload: nexla_sdk.models.marketplace.requests.CustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/marketplace.py:65` + - Source: `nexla_sdk/resources/marketplace.py:82` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.mdx index fe859d1..2471d0a 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.mdx @@ -10,785 +10,800 @@ keywords: [Nexla, SDK, Python, API] ### ApprovalRequestsResource -Defined in `nexla_sdk/resources/approval_requests.py:6` +Defined in `nexla_sdk/resources/approval_requests.py:7` Resource for managing approval requests. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `approve(self, request_id: int) -> nexla_sdk.models.approval_requests.responses.ApprovalRequest` - - Source: `nexla_sdk/resources/approval_requests.py:24` + - Source: `nexla_sdk/resources/approval_requests.py:25` - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `list_pending(self) -> List[nexla_sdk.models.approval_requests.responses.ApprovalRequest]` - - Source: `nexla_sdk/resources/approval_requests.py:14` + - Source: `nexla_sdk/resources/approval_requests.py:15` - `list_requested(self) -> List[nexla_sdk.models.approval_requests.responses.ApprovalRequest]` - - Source: `nexla_sdk/resources/approval_requests.py:19` + - Source: `nexla_sdk/resources/approval_requests.py:20` - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `reject(self, request_id: int, reason: str = '') -> nexla_sdk.models.approval_requests.responses.ApprovalRequest` - - Source: `nexla_sdk/resources/approval_requests.py:29` + - Source: `nexla_sdk/resources/approval_requests.py:30` - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### AsyncTasksResource -Defined in `nexla_sdk/resources/async_tasks.py:7` +Defined in `nexla_sdk/resources/async_tasks.py:8` Resource for managing asynchronous tasks. Methods: - `acknowledge(self, task_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/async_tasks.py:72` + - Source: `nexla_sdk/resources/async_tasks.py:73` - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, payload: nexla_sdk.models.async_tasks.requests.AsyncTaskCreate) -> nexla_sdk.models.async_tasks.responses.AsyncTask` - - Source: `nexla_sdk/resources/async_tasks.py:20` + - Source: `nexla_sdk/resources/async_tasks.py:21` - Create/start an asynchronous task. - `delete(self, task_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/async_tasks.py:49` + - Source: `nexla_sdk/resources/async_tasks.py:50` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `download_link(self, task_id: int) -> Union[str, nexla_sdk.models.async_tasks.responses.DownloadLink]` - - Source: `nexla_sdk/resources/async_tasks.py:62` + - Source: `nexla_sdk/resources/async_tasks.py:63` - `explain_arguments(self, task_type: str) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/async_tasks.py:40` + - Source: `nexla_sdk/resources/async_tasks.py:41` - `get(self, task_id: int) -> nexla_sdk.models.async_tasks.responses.AsyncTask` - - Source: `nexla_sdk/resources/async_tasks.py:44` + - Source: `nexla_sdk/resources/async_tasks.py:45` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self) -> List[nexla_sdk.models.async_tasks.responses.AsyncTask]` - - Source: `nexla_sdk/resources/async_tasks.py:15` + - Source: `nexla_sdk/resources/async_tasks.py:16` - List asynchronous tasks. - `list_by_status(self, status: str) -> List[nexla_sdk.models.async_tasks.responses.AsyncTask]` - - Source: `nexla_sdk/resources/async_tasks.py:31` + - Source: `nexla_sdk/resources/async_tasks.py:32` - `list_of_type(self, task_type: str) -> List[nexla_sdk.models.async_tasks.responses.AsyncTask]` - - Source: `nexla_sdk/resources/async_tasks.py:26` + - Source: `nexla_sdk/resources/async_tasks.py:27` - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `rerun(self, task_id: int) -> nexla_sdk.models.async_tasks.responses.AsyncTask` - - Source: `nexla_sdk/resources/async_tasks.py:53` + - Source: `nexla_sdk/resources/async_tasks.py:54` - `result(self, task_id: int) -> Optional[Dict[str, Any]]` - - Source: `nexla_sdk/resources/async_tasks.py:58` + - Source: `nexla_sdk/resources/async_tasks.py:59` - `types(self) -> List[str]` - - Source: `nexla_sdk/resources/async_tasks.py:36` + - Source: `nexla_sdk/resources/async_tasks.py:37` - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### AttributeTransformsResource -Defined in `nexla_sdk/resources/attribute_transforms.py:9` +Defined in `nexla_sdk/resources/attribute_transforms.py:11` Resource for reusable attribute transforms (aliased to code containers). Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.attribute_transforms.requests.AttributeTransformCreate) -> nexla_sdk.models.attribute_transforms.responses.AttributeTransform` - - Source: `nexla_sdk/resources/attribute_transforms.py:39` + - Source: `nexla_sdk/resources/attribute_transforms.py:43` - Create a new attribute transform. - `delete(self, attribute_transform_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/attribute_transforms.py:47` + - Source: `nexla_sdk/resources/attribute_transforms.py:53` - Delete an attribute transform by ID. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, attribute_transform_id: int, expand: bool = False) -> nexla_sdk.models.attribute_transforms.responses.AttributeTransform` - - Source: `nexla_sdk/resources/attribute_transforms.py:35` + - Source: `nexla_sdk/resources/attribute_transforms.py:37` - Get an attribute transform by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, **kwargs) -> List[nexla_sdk.models.attribute_transforms.responses.AttributeTransform]` - - Source: `nexla_sdk/resources/attribute_transforms.py:17` + - Source: `nexla_sdk/resources/attribute_transforms.py:19` - List attribute transforms with optional filters. - `list_public(self) -> List[nexla_sdk.models.attribute_transforms.responses.AttributeTransform]` - - Source: `nexla_sdk/resources/attribute_transforms.py:51` + - Source: `nexla_sdk/resources/attribute_transforms.py:57` - List publicly shared attribute transforms. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, attribute_transform_id: int, data: nexla_sdk.models.attribute_transforms.requests.AttributeTransformUpdate) -> nexla_sdk.models.attribute_transforms.responses.AttributeTransform` - - Source: `nexla_sdk/resources/attribute_transforms.py:43` + - Source: `nexla_sdk/resources/attribute_transforms.py:47` - Update an attribute transform by ID. ### BaseResource -Defined in `nexla_sdk/resources/base_resource.py:12` +Defined in `nexla_sdk/resources/base_resource.py:15` Base class for all Nexla resources. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### CodeContainersResource -Defined in `nexla_sdk/resources/code_containers.py:7` +Defined in `nexla_sdk/resources/code_containers.py:11` Resource for managing code containers. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, code_container_id: int) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:61` + - Source: `nexla_sdk/resources/code_containers.py:67` - Copy a code container by ID. - `create(self, data: nexla_sdk.models.code_containers.requests.CodeContainerCreate) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:41` + - Source: `nexla_sdk/resources/code_containers.py:45` - Create a new code container. - `delete(self, code_container_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/code_containers.py:57` + - Source: `nexla_sdk/resources/code_containers.py:63` - Delete a code container by ID. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, code_container_id: int, expand: bool = False) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:33` + - Source: `nexla_sdk/resources/code_containers.py:37` - Get a code container by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, **kwargs) -> List[nexla_sdk.models.code_containers.responses.CodeContainer]` - - Source: `nexla_sdk/resources/code_containers.py:15` + - Source: `nexla_sdk/resources/code_containers.py:19` - List code containers with optional filters. - `list_public(self) -> List[nexla_sdk.models.code_containers.responses.CodeContainer]` - - Source: `nexla_sdk/resources/code_containers.py:65` + - Source: `nexla_sdk/resources/code_containers.py:71` - List publicly shared code containers. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, code_container_id: int, data: nexla_sdk.models.code_containers.requests.CodeContainerUpdate) -> nexla_sdk.models.code_containers.responses.CodeContainer` - - Source: `nexla_sdk/resources/code_containers.py:49` + - Source: `nexla_sdk/resources/code_containers.py:53` - Update an existing code container. ### CredentialsResource -Defined in `nexla_sdk/resources/credentials.py:10` +Defined in `nexla_sdk/resources/credentials.py:19` Resource for managing data credentials. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.credentials.requests.CredentialCreate) -> nexla_sdk.models.credentials.responses.Credential` - - Source: `nexla_sdk/resources/credentials.py:66` + - Source: `nexla_sdk/resources/credentials.py:75` - Create new credential. - `delete(self, credential_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/credentials.py:96` + - Source: `nexla_sdk/resources/credentials.py:105` - Delete credential. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, credential_id: int, expand: bool = False) -> nexla_sdk.models.credentials.responses.Credential` - - Source: `nexla_sdk/resources/credentials.py:50` + - Source: `nexla_sdk/resources/credentials.py:59` - Get single credential by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, credentials_type: Optional[str] = None, **kwargs) -> List[nexla_sdk.models.credentials.responses.Credential]` - - Source: `nexla_sdk/resources/credentials.py:18` + - Source: `nexla_sdk/resources/credentials.py:27` - List credentials with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `probe(self, credential_id: int, async_mode: bool = False, request_id: Optional[int] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/credentials.py:108` + - Source: `nexla_sdk/resources/credentials.py:117` - Test credential validity. - `probe_sample(self, credential_id: int, request: nexla_sdk.models.credentials.requests.ProbeSampleRequest, async_mode: bool = False, request_id: Optional[int] = None) -> nexla_sdk.models.credentials.responses.ProbeSampleResponse` - - Source: `nexla_sdk/resources/credentials.py:158` + - Source: `nexla_sdk/resources/credentials.py:183` - Preview data content accessible by credential. - `probe_tree(self, credential_id: int, request: nexla_sdk.models.credentials.requests.ProbeTreeRequest, async_mode: bool = False, request_id: Optional[int] = None) -> nexla_sdk.models.credentials.responses.ProbeTreeResponse` - - Source: `nexla_sdk/resources/credentials.py:134` + - Source: `nexla_sdk/resources/credentials.py:155` - Preview storage structure accessible by credential. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, credential_id: int, data: nexla_sdk.models.credentials.requests.CredentialUpdate) -> nexla_sdk.models.credentials.responses.Credential` - - Source: `nexla_sdk/resources/credentials.py:83` + - Source: `nexla_sdk/resources/credentials.py:92` - Update credential. ### DataSchemasResource -Defined in `nexla_sdk/resources/data_schemas.py:6` +Defined in `nexla_sdk/resources/data_schemas.py:7` Resource for data schemas (accessors + audit log only). Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. - `get_audit_log(self, schema_id: int, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/data_schemas.py:14` + - Source: `nexla_sdk/resources/data_schemas.py:15` - Get audit log for resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### DestinationsResource -Defined in `nexla_sdk/resources/destinations.py:7` +Defined in `nexla_sdk/resources/destinations.py:12` Resource for managing destinations (data sinks). Methods: - `activate(self, sink_id: int) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:89` + - Source: `nexla_sdk/resources/destinations.py:94` - Activate destination. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, sink_id: int, options: Optional[nexla_sdk.models.destinations.requests.DestinationCopyOptions] = None) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:113` + - Source: `nexla_sdk/resources/destinations.py:118` - Copy a destination. - `create(self, data: nexla_sdk.models.destinations.requests.DestinationCreate) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:49` + - Source: `nexla_sdk/resources/destinations.py:54` - Create new destination. - `delete(self, sink_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/destinations.py:77` + - Source: `nexla_sdk/resources/destinations.py:82` - Delete destination. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, sink_id: int, expand: bool = False) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:33` + - Source: `nexla_sdk/resources/destinations.py:38` - Get single destination by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, **kwargs) -> List[nexla_sdk.models.destinations.responses.Destination]` - - Source: `nexla_sdk/resources/destinations.py:15` + - Source: `nexla_sdk/resources/destinations.py:20` - List destinations with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, sink_id: int) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:101` + - Source: `nexla_sdk/resources/destinations.py:106` - Pause destination. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, sink_id: int, data: nexla_sdk.models.destinations.requests.DestinationUpdate) -> nexla_sdk.models.destinations.responses.Destination` - - Source: `nexla_sdk/resources/destinations.py:64` + - Source: `nexla_sdk/resources/destinations.py:69` - Update destination. ### DocContainersResource -Defined in `nexla_sdk/resources/doc_containers.py:6` +Defined in `nexla_sdk/resources/doc_containers.py:7` Resource for document containers accessors and audit logs. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. - `get_audit_log(self, doc_container_id: int, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/doc_containers.py:14` + - Source: `nexla_sdk/resources/doc_containers.py:15` - Get audit log for resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### FlowsResource -Defined in `nexla_sdk/resources/flows.py:7` +Defined in `nexla_sdk/resources/flows.py:21` Resource for managing data flows. Methods: - `activate(self, flow_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:83` + - Source: `nexla_sdk/resources/flows.py:117` - Activate a flow. -- `activate_by_resource(self, resource_type: str, resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:164` +- `activate_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:314` - Activate flow by resource ID. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, flow_id: int, options: Optional[nexla_sdk.models.flows.requests.FlowCopyOptions] = None) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:125` + - Source: `nexla_sdk/resources/flows.py:171` - Copy a flow. +- `copy_and_replace_credentials(self, flow_id: int, resource_credential_mapping: Dict[int, int], copy_options: Optional[nexla_sdk.models.flows.requests.FlowCopyOptions] = None, target_project_id: Optional[int] = None) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:186` + - Copy a flow and replace credentials on specified resources. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, flow_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:138` + - Source: `nexla_sdk/resources/flows.py:282` - Delete flow. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. -- `delete_by_resource(self, resource_type: str, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:150` +- `delete_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:294` - Delete flow by resource ID. -- `docs_recommendation(self, flow_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:216` +- `docs_recommendation(self, flow_id: int) -> Union[nexla_sdk.models.flows.responses.DocsRecommendation, Dict[str, Any]]` + - Source: `nexla_sdk/resources/flows.py:378` - Generate AI suggestion for flow documentation. -- `get(self, flow_id: int, flows_only: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:46` +- `get(self, flow_id: int, flows_only: bool = False, include_run_metrics: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:67` - Get flow by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_active_flows_metrics(self, from_date: str = None, to_date: str = None, org_id: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:475` + - Get metrics for currently active flows. +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. -- `get_by_resource(self, resource_type: str, resource_id: int, flows_only: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:62` +- `get_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, flows_only: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:90` - Get flow by resource ID. -- `get_logs(self, resource_type: str, resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:221` +- `get_flow_logs(self, flow_id: int, from_date: str = None, to_date: str = None, severity: str = None, run_id: int = None, page: int = None, per_page: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:397` + - Get execution logs for a specific flow. +- `get_logs(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.flows.responses.FlowLogsResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/flows.py:529` - Get flow execution logs for a specific run id of a flow. -- `get_metrics(self, resource_type: str, resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/flows.py:243` +- `get_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.flows.responses.FlowMetricsApiResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/flows.py:581` - Get flow metrics for a flow node keyed by resource id. -- `list(self, flows_only: bool = False, include_run_metrics: bool = False, **kwargs) -> List[nexla_sdk.models.flows.responses.FlowResponse]` - - Source: `nexla_sdk/resources/flows.py:15` +- `get_run_status(self, flow_id: int, run_id: int) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:499` + - Get status of a specific flow run. +- `list(self, flows_only: bool = False, include_run_metrics: bool = False, access_role: Optional[str] = None, **kwargs) -> List[nexla_sdk.models.flows.responses.FlowResponse]` + - Source: `nexla_sdk/resources/flows.py:29` - List flows with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. -- `pause(self, flow_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:104` +- `pause(self, flow_id: int, all: bool = False, full_tree: bool = False, async_mode: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:140` - Pause a flow. -- `pause_by_resource(self, resource_type: str, resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/flows.py:190` +- `pause_by_resource(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, all: bool = False, full_tree: bool = False) -> nexla_sdk.models.flows.responses.FlowResponse` + - Source: `nexla_sdk/resources/flows.py:346` - Pause flow by resource ID. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. +- `search_flow_logs(self, flow_id: int, run_ids: str = None, severity: str = None, search_string: str = None, from_date: str = None, to_date: str = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/flows.py:438` + - Advanced search for flow execution logs. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### GenAIResource -Defined in `nexla_sdk/resources/genai.py:9` +Defined in `nexla_sdk/resources/genai.py:16` Resource for GenAI configurations and org settings. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `create_config(self, payload: nexla_sdk.models.genai.requests.GenAiConfigCreatePayload) -> nexla_sdk.models.genai.responses.GenAiConfig` - - Source: `nexla_sdk/resources/genai.py:22` + - Source: `nexla_sdk/resources/genai.py:29` - `create_org_setting(self, payload: nexla_sdk.models.genai.requests.GenAiOrgSettingPayload) -> nexla_sdk.models.genai.responses.GenAiOrgSetting` - - Source: `nexla_sdk/resources/genai.py:49` + - Source: `nexla_sdk/resources/genai.py:66` - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_config(self, gen_ai_config_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/genai.py:36` + - Source: `nexla_sdk/resources/genai.py:49` - `delete_org_setting(self, gen_ai_org_setting_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/genai.py:58` + - Source: `nexla_sdk/resources/genai.py:77` - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_config(self, gen_ai_config_id: int) -> nexla_sdk.models.genai.responses.GenAiConfig` - - Source: `nexla_sdk/resources/genai.py:27` + - Source: `nexla_sdk/resources/genai.py:34` - `get_org_setting(self, gen_ai_org_setting_id: int) -> nexla_sdk.models.genai.responses.GenAiOrgSetting` - - Source: `nexla_sdk/resources/genai.py:54` + - Source: `nexla_sdk/resources/genai.py:71` - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `list_configs(self) -> List[nexla_sdk.models.genai.responses.GenAiConfig]` - - Source: `nexla_sdk/resources/genai.py:18` + - Source: `nexla_sdk/resources/genai.py:25` - `list_org_settings(self, org_id: int = None, all: bool = False) -> List[nexla_sdk.models.genai.responses.GenAiOrgSetting]` - - Source: `nexla_sdk/resources/genai.py:40` + - Source: `nexla_sdk/resources/genai.py:55` - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `show_active_config(self, gen_ai_usage: str) -> nexla_sdk.models.genai.responses.ActiveConfigView` - - Source: `nexla_sdk/resources/genai.py:61` + - Source: `nexla_sdk/resources/genai.py:82` - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. - `update_config(self, gen_ai_config_id: int, payload: nexla_sdk.models.genai.requests.GenAiConfigPayload) -> nexla_sdk.models.genai.responses.GenAiConfig` - - Source: `nexla_sdk/resources/genai.py:31` + - Source: `nexla_sdk/resources/genai.py:40` ### LookupsResource -Defined in `nexla_sdk/resources/lookups.py:8` +Defined in `nexla_sdk/resources/lookups.py:14` Resource for managing lookups (data maps). Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.lookups.requests.LookupCreate) -> nexla_sdk.models.lookups.responses.Lookup` - - Source: `nexla_sdk/resources/lookups.py:50` + - Source: `nexla_sdk/resources/lookups.py:56` - Create new lookup. - `delete(self, data_map_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/lookups.py:78` + - Source: `nexla_sdk/resources/lookups.py:84` - Delete lookup. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_entries(self, data_map_id: int, entry_keys: Union[str, List[str]]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/lookups.py:131` + - Source: `nexla_sdk/resources/lookups.py:137` - Delete specific entries from a lookup. - `get(self, data_map_id: int, expand: bool = False) -> nexla_sdk.models.lookups.responses.Lookup` - - Source: `nexla_sdk/resources/lookups.py:34` + - Source: `nexla_sdk/resources/lookups.py:40` - Get single lookup by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_entries(self, data_map_id: int, entry_keys: Union[str, List[str]]) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/lookups.py:110` + - Source: `nexla_sdk/resources/lookups.py:116` - Get specific entries from a lookup. - `list(self, **kwargs) -> List[nexla_sdk.models.lookups.responses.Lookup]` - - Source: `nexla_sdk/resources/lookups.py:16` + - Source: `nexla_sdk/resources/lookups.py:22` - List lookups with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, data_map_id: int, data: nexla_sdk.models.lookups.requests.LookupUpdate) -> nexla_sdk.models.lookups.responses.Lookup` - - Source: `nexla_sdk/resources/lookups.py:65` + - Source: `nexla_sdk/resources/lookups.py:71` - Update lookup. - `upsert_entries(self, data_map_id: int, entries: List[Dict[str, Any]]) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/lookups.py:90` + - Source: `nexla_sdk/resources/lookups.py:96` - Upsert entries in a lookup. ### MarketplaceResource -Defined in `nexla_sdk/resources/marketplace.py:11` +Defined in `nexla_sdk/resources/marketplace.py:16` Resource for marketplace domains and items. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `add_domain_custodians(self, domain_id: int, payload: nexla_sdk.models.marketplace.requests.CustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/marketplace.py:70` + - Source: `nexla_sdk/resources/marketplace.py:91` - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `create_domain(self, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainCreate) -> nexla_sdk.models.marketplace.responses.MarketplaceDomain` - - Source: `nexla_sdk/resources/marketplace.py:42` + - Source: `nexla_sdk/resources/marketplace.py:53` - `create_domain_item(self, domain_id: int, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainsItemCreate) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomainsItem]` - - Source: `nexla_sdk/resources/marketplace.py:55` + - Source: `nexla_sdk/resources/marketplace.py:66` - `create_domains(self, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainCreate) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomain]` - - Source: `nexla_sdk/resources/marketplace.py:24` + - Source: `nexla_sdk/resources/marketplace.py:29` - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_domain(self, domain_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/marketplace.py:47` + - Source: `nexla_sdk/resources/marketplace.py:58` - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_domain(self, domain_id: int) -> nexla_sdk.models.marketplace.responses.MarketplaceDomain` - - Source: `nexla_sdk/resources/marketplace.py:33` + - Source: `nexla_sdk/resources/marketplace.py:40` - `get_domains_for_org(self, org_id: int) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomain]` - - Source: `nexla_sdk/resources/marketplace.py:29` + - Source: `nexla_sdk/resources/marketplace.py:34` - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `list_domain_custodians(self, domain_id: int) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/marketplace.py:61` + - Source: `nexla_sdk/resources/marketplace.py:76` - `list_domain_items(self, domain_id: int) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomainsItem]` - - Source: `nexla_sdk/resources/marketplace.py:51` + - Source: `nexla_sdk/resources/marketplace.py:62` - `list_domains(self) -> List[nexla_sdk.models.marketplace.responses.MarketplaceDomain]` - - Source: `nexla_sdk/resources/marketplace.py:20` + - Source: `nexla_sdk/resources/marketplace.py:25` - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `remove_domain_custodians(self, domain_id: int, payload: nexla_sdk.models.marketplace.requests.CustodiansPayload) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/marketplace.py:75` + - Source: `nexla_sdk/resources/marketplace.py:100` - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. - `update_domain(self, domain_id: int, data: nexla_sdk.models.marketplace.requests.MarketplaceDomainCreate) -> nexla_sdk.models.marketplace.responses.MarketplaceDomain` - - Source: `nexla_sdk/resources/marketplace.py:37` + - Source: `nexla_sdk/resources/marketplace.py:44` - `update_domain_custodians(self, domain_id: int, payload: nexla_sdk.models.marketplace.requests.CustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/marketplace.py:65` + - Source: `nexla_sdk/resources/marketplace.py:82` ### MetricsResource -Defined in `nexla_sdk/resources/metrics.py:10` +Defined in `nexla_sdk/resources/metrics.py:26` Resource for retrieving metrics. @@ -799,814 +814,828 @@ so no additional typed overrides are needed. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. -- `get_flow_logs(self, resource_type: str, resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/metrics.py:120` -- `get_flow_metrics(self, resource_type: str, resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/metrics.py:97` +- `get_flow_logs(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.metrics.responses.ResourceFlowLogsResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/metrics.py:216` + - Get flow logs for a flow run keyed by resource ID. +- `get_flow_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.metrics.responses.ResourceFlowMetricsResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/metrics.py:162` + - Get flow metrics for a flow node keyed by resource ID. +- `get_flow_metrics_summary(self, period: str) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/metrics.py:148` + - Get flow metrics summary for a given period. - `get_rate_limits(self) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/metrics.py:86` + - Source: `nexla_sdk/resources/metrics.py:111` - Get current rate limit and usage. -- `get_resource_daily_metrics(self, resource_type: nexla_sdk.models.metrics.enums.ResourceType, resource_id: int, from_date: str, to_date: Optional[str] = None) -> nexla_sdk.models.metrics.responses.MetricsResponse` - - Source: `nexla_sdk/resources/metrics.py:23` +- `get_resource_daily_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, from_date: str, to_date: Optional[str] = None) -> nexla_sdk.models.metrics.responses.MetricsResponse` + - Source: `nexla_sdk/resources/metrics.py:39` - Get daily metrics for a resource. -- `get_resource_metrics_by_run(self, resource_type: nexla_sdk.models.metrics.enums.ResourceType, resource_id: int, groupby: Optional[str] = None, orderby: Optional[str] = None, page: Optional[int] = None, size: Optional[int] = None) -> nexla_sdk.models.metrics.responses.MetricsByRunResponse` - - Source: `nexla_sdk/resources/metrics.py:51` +- `get_resource_flow_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, metric_type: str = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/metrics.py:121` + - Get flow metrics for a specific resource. +- `get_resource_metrics_by_run(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, groupby: Optional[str] = None, orderby: Optional[str] = None, page: Optional[int] = None, size: Optional[int] = None) -> nexla_sdk.models.metrics.responses.MetricsByRunResponse` + - Source: `nexla_sdk/resources/metrics.py:70` - Get metrics by run for a resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. ### NexsetsResource -Defined in `nexla_sdk/resources/nexsets.py:7` +Defined in `nexla_sdk/resources/nexsets.py:12` Resource for managing nexsets (data sets). Methods: - `activate(self, set_id: int) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:89` + - Source: `nexla_sdk/resources/nexsets.py:94` - Activate nexset. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, set_id: int, options: Optional[nexla_sdk.models.nexsets.requests.NexsetCopyOptions] = None) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:144` + - Source: `nexla_sdk/resources/nexsets.py:147` - Copy a nexset. - `create(self, data: nexla_sdk.models.nexsets.requests.NexsetCreate) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:49` + - Source: `nexla_sdk/resources/nexsets.py:54` - Create new nexset. - `delete(self, set_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/nexsets.py:77` + - Source: `nexla_sdk/resources/nexsets.py:82` - Delete nexset. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `docs_recommendation(self, set_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/nexsets.py:158` + - Source: `nexla_sdk/resources/nexsets.py:161` - Generate AI suggestion for Nexset documentation. - `get(self, set_id: int, expand: bool = False) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:33` + - Source: `nexla_sdk/resources/nexsets.py:38` - Get single nexset by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_samples(self, set_id: int, count: int = 10, include_metadata: bool = False, live: bool = False) -> List[nexla_sdk.models.nexsets.responses.NexsetSample]` - - Source: `nexla_sdk/resources/nexsets.py:113` + - Source: `nexla_sdk/resources/nexsets.py:118` - Get sample records from a nexset. - `list(self, **kwargs) -> List[nexla_sdk.models.nexsets.responses.Nexset]` - - Source: `nexla_sdk/resources/nexsets.py:15` + - Source: `nexla_sdk/resources/nexsets.py:20` - List nexsets with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, set_id: int) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:101` + - Source: `nexla_sdk/resources/nexsets.py:106` - Pause nexset. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, set_id: int, data: nexla_sdk.models.nexsets.requests.NexsetUpdate) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:64` + - Source: `nexla_sdk/resources/nexsets.py:69` - Update nexset. ### NotificationsResource -Defined in `nexla_sdk/resources/notifications.py:13` +Defined in `nexla_sdk/resources/notifications.py:19` Resource for managing notifications. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `create_channel_setting(self, data: nexla_sdk.models.notifications.requests.NotificationChannelSettingCreate) -> nexla_sdk.models.notifications.responses.NotificationChannelSetting` - - Source: `nexla_sdk/resources/notifications.py:190` + - Source: `nexla_sdk/resources/notifications.py:195` - Create notification channel setting. - `create_setting(self, data: nexla_sdk.models.notifications.requests.NotificationSettingCreate) -> nexla_sdk.models.notifications.responses.NotificationSetting` - - Source: `nexla_sdk/resources/notifications.py:276` + - Source: `nexla_sdk/resources/notifications.py:285` - Create notification setting. - `delete(self, notification_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:34` + - Source: `nexla_sdk/resources/notifications.py:40` - Delete notification. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_all(self) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:82` + - Source: `nexla_sdk/resources/notifications.py:90` - Delete all notifications. - `delete_channel_setting(self, setting_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:235` + - Source: `nexla_sdk/resources/notifications.py:242` - Delete notification channel setting. - `delete_setting(self, setting_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:321` + - Source: `nexla_sdk/resources/notifications.py:330` - Delete notification setting. - `get(self, notification_id: int, expand: bool = False) -> nexla_sdk.models.notifications.responses.Notification` - - Source: `nexla_sdk/resources/notifications.py:21` + - Source: `nexla_sdk/resources/notifications.py:27` - Get single notification by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_channel_setting(self, setting_id: int) -> nexla_sdk.models.notifications.responses.NotificationChannelSetting` - - Source: `nexla_sdk/resources/notifications.py:204` + - Source: `nexla_sdk/resources/notifications.py:211` - Get notification channel setting. - `get_count(self, read: Optional[int] = None) -> nexla_sdk.models.notifications.responses.NotificationCount` - - Source: `nexla_sdk/resources/notifications.py:92` + - Source: `nexla_sdk/resources/notifications.py:100` - Get notification count. - `get_resource_settings(self, resource_type: str, resource_id: int, expand: bool = False, filter_overridden: bool = False, notification_type_id: Optional[int] = None) -> List[nexla_sdk.models.notifications.responses.NotificationSetting]` - - Source: `nexla_sdk/resources/notifications.py:352` + - Source: `nexla_sdk/resources/notifications.py:361` - Get notification settings for a resource. - `get_setting(self, setting_id: int) -> nexla_sdk.models.notifications.responses.NotificationSetting` - - Source: `nexla_sdk/resources/notifications.py:290` + - Source: `nexla_sdk/resources/notifications.py:299` - Get notification setting. - `get_settings_by_type(self, notification_type_id: int, expand: bool = False) -> List[nexla_sdk.models.notifications.responses.NotificationSetting]` - - Source: `nexla_sdk/resources/notifications.py:334` + - Source: `nexla_sdk/resources/notifications.py:343` - Get notification settings for a type. - `get_type(self, event_type: str, resource_type: str) -> nexla_sdk.models.notifications.responses.NotificationType` - - Source: `nexla_sdk/resources/notifications.py:159` + - Source: `nexla_sdk/resources/notifications.py:167` - Get specific notification type. - `get_types(self, status: Optional[str] = None) -> List[nexla_sdk.models.notifications.responses.NotificationType]` - - Source: `nexla_sdk/resources/notifications.py:144` + - Source: `nexla_sdk/resources/notifications.py:152` - Get all notification types. - `list(self, read: Optional[int] = None, level: Optional[str] = None, from_timestamp: Optional[int] = None, to_timestamp: Optional[int] = None, **kwargs) -> List[nexla_sdk.models.notifications.responses.Notification]` - - Source: `nexla_sdk/resources/notifications.py:46` + - Source: `nexla_sdk/resources/notifications.py:52` - List notifications with optional filters. - `list_channel_settings(self) -> List[nexla_sdk.models.notifications.responses.NotificationChannelSetting]` - - Source: `nexla_sdk/resources/notifications.py:179` + - Source: `nexla_sdk/resources/notifications.py:184` - List notification channel settings. - `list_settings(self, event_type: Optional[str] = None, resource_type: Optional[str] = None, status: Optional[str] = None) -> List[nexla_sdk.models.notifications.responses.NotificationSetting]` - - Source: `nexla_sdk/resources/notifications.py:249` + - Source: `nexla_sdk/resources/notifications.py:256` - List notification settings. - `mark_read(self, notification_ids: Union[List[int], str]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:107` + - Source: `nexla_sdk/resources/notifications.py:115` - Mark notifications as read. - `mark_unread(self, notification_ids: Union[List[int], str]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:125` + - Source: `nexla_sdk/resources/notifications.py:133` - Mark notifications as unread. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. - `update_channel_setting(self, setting_id: int, data: nexla_sdk.models.notifications.requests.NotificationChannelSettingUpdate) -> nexla_sdk.models.notifications.responses.NotificationChannelSetting` - - Source: `nexla_sdk/resources/notifications.py:218` + - Source: `nexla_sdk/resources/notifications.py:225` - Update notification channel setting. - `update_setting(self, setting_id: int, data: nexla_sdk.models.notifications.requests.NotificationSettingUpdate) -> nexla_sdk.models.notifications.responses.NotificationSetting` - - Source: `nexla_sdk/resources/notifications.py:304` + - Source: `nexla_sdk/resources/notifications.py:313` - Update notification setting. ### OrgAuthConfigsResource -Defined in `nexla_sdk/resources/org_auth_configs.py:7` +Defined in `nexla_sdk/resources/org_auth_configs.py:8` Resource for organization authentication configurations (/api_auth_configs). Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, payload: nexla_sdk.models.org_auth_configs.requests.AuthConfigPayload) -> nexla_sdk.models.org_auth_configs.responses.AuthConfig` - - Source: `nexla_sdk/resources/org_auth_configs.py:30` + - Source: `nexla_sdk/resources/org_auth_configs.py:31` - Create a new authentication configuration. - `delete(self, auth_config_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/org_auth_configs.py:42` + - Source: `nexla_sdk/resources/org_auth_configs.py:45` - Delete an authentication configuration by ID. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, auth_config_id: int) -> nexla_sdk.models.org_auth_configs.responses.AuthConfig` - - Source: `nexla_sdk/resources/org_auth_configs.py:25` + - Source: `nexla_sdk/resources/org_auth_configs.py:26` - Get a specific authentication configuration by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self) -> List[nexla_sdk.models.org_auth_configs.responses.AuthConfig]` - - Source: `nexla_sdk/resources/org_auth_configs.py:15` + - Source: `nexla_sdk/resources/org_auth_configs.py:16` - List authentication configurations for the current organization. - `list_all(self) -> List[nexla_sdk.models.org_auth_configs.responses.AuthConfig]` - - Source: `nexla_sdk/resources/org_auth_configs.py:20` + - Source: `nexla_sdk/resources/org_auth_configs.py:21` - List all authentication configurations (admin only). - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, auth_config_id: int, payload: nexla_sdk.models.org_auth_configs.requests.AuthConfigPayload) -> nexla_sdk.models.org_auth_configs.responses.AuthConfig` - - Source: `nexla_sdk/resources/org_auth_configs.py:36` + - Source: `nexla_sdk/resources/org_auth_configs.py:37` - Update an existing authentication configuration. ### OrganizationsResource -Defined in `nexla_sdk/resources/organizations.py:15` +Defined in `nexla_sdk/resources/organizations.py:22` Resource for managing organizations. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `activate_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberActivateDeactivateRequest) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:164` + - Source: `nexla_sdk/resources/organizations.py:173` - Activate members in an organization. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `add_custodians(self, org_id: int, payload: nexla_sdk.models.organizations.custodians.OrgCustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/organizations.py:291` + - Source: `nexla_sdk/resources/organizations.py:365` - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.organizations.requests.OrganizationCreate) -> nexla_sdk.models.organizations.responses.Organization` - - Source: `nexla_sdk/resources/organizations.py:54` + - Source: `nexla_sdk/resources/organizations.py:61` - Create a new organization. Note: This is an admin-only operation. - `deactivate_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberActivateDeactivateRequest) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:149` + - Source: `nexla_sdk/resources/organizations.py:156` - Deactivate members in an organization. - `delete(self, org_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:79` + - Source: `nexla_sdk/resources/organizations.py:86` - Delete organization. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberDelete) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:135` + - Source: `nexla_sdk/resources/organizations.py:142` - Remove members from organization. - `get(self, org_id: int, expand: bool = False) -> nexla_sdk.models.organizations.responses.Organization` - - Source: `nexla_sdk/resources/organizations.py:41` + - Source: `nexla_sdk/resources/organizations.py:48` - Get single organization by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. - `get_account_summary(self, org_id: int) -> nexla_sdk.models.organizations.responses.AccountSummary` - - Source: `nexla_sdk/resources/organizations.py:179` + - Source: `nexla_sdk/resources/organizations.py:190` - Get account summary statistics for an organization. -- `get_audit_log(self, org_id: int, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/organizations.py:212` +- `get_audit_log(self, org_id: int, from_date: str = None, to_date: str = None, event_filter: str = None, change_filter: str = None, page: int = None, per_page: int = None) -> List[nexla_sdk.models.common.LogEntry]` + - Source: `nexla_sdk/resources/organizations.py:227` - Get audit log for an organization. - `get_auth_settings(self, org_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/organizations.py:243` + - Source: `nexla_sdk/resources/organizations.py:316` - Get authentication settings for organization. - `get_current_account_summary(self) -> nexla_sdk.models.organizations.responses.AccountSummary` - - Source: `nexla_sdk/resources/organizations.py:193` + - Source: `nexla_sdk/resources/organizations.py:204` - Get account summary for the current organization based on auth token. - `get_custodians(self, org_id: int) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/organizations.py:276` + - Source: `nexla_sdk/resources/organizations.py:348` +- `get_flow_status_metrics(self, org_id: int, from_date: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/organizations.py:269` + - Get flow status metrics for an organization. - `get_members(self, org_id: int) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:91` + - Source: `nexla_sdk/resources/organizations.py:98` - Get all members in organization. -- `get_org_flow_account_metrics(self, org_id: int, from_date: str, to_date: str = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:204` +- `get_org_flow_account_metrics(self, org_id: int, from_date: str, to_date: str = None, aggregate: str = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/organizations.py:215` - Get total account metrics for an organization (flows). -- `get_resource_audit_log(self, org_id: int, resource_type: str, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/organizations.py:227` +- `get_resource_audit_log(self, org_id: int, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], **params) -> List[nexla_sdk.models.common.LogEntry]` + - Source: `nexla_sdk/resources/organizations.py:294` - Get audit log for a specific resource type within an organization. - `list(self, **kwargs) -> List[nexla_sdk.models.organizations.responses.Organization]` - - Source: `nexla_sdk/resources/organizations.py:23` + - Source: `nexla_sdk/resources/organizations.py:30` - List organizations with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `remove_custodians(self, org_id: int, payload: nexla_sdk.models.organizations.custodians.OrgCustodiansPayload) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:299` + - Source: `nexla_sdk/resources/organizations.py:375` - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `replace_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberList) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:120` + - Source: `nexla_sdk/resources/organizations.py:127` - Replace all members in organization. - `update(self, org_id: int, data: nexla_sdk.models.organizations.requests.OrganizationUpdate) -> nexla_sdk.models.organizations.responses.Organization` - - Source: `nexla_sdk/resources/organizations.py:66` + - Source: `nexla_sdk/resources/organizations.py:73` - Update organization. - `update_auth_setting(self, org_id: int, auth_setting_id: int, enabled: bool) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:256` + - Source: `nexla_sdk/resources/organizations.py:329` - Enable/disable authentication configuration. - `update_custodians(self, org_id: int, payload: nexla_sdk.models.organizations.custodians.OrgCustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/organizations.py:283` + - Source: `nexla_sdk/resources/organizations.py:355` - `update_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberList) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:105` + - Source: `nexla_sdk/resources/organizations.py:112` - Add or update members in organization. ### ProjectsResource -Defined in `nexla_sdk/resources/projects.py:8` +Defined in `nexla_sdk/resources/projects.py:13` Resource for managing projects. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `add_data_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:161` + - Source: `nexla_sdk/resources/projects.py:170` - Backward-compatible alias for adding flows to a project. - `add_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:108` + - Source: `nexla_sdk/resources/projects.py:113` - Add flows to project. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.projects.requests.ProjectCreate) -> nexla_sdk.models.projects.responses.Project` - - Source: `nexla_sdk/resources/projects.py:54` + - Source: `nexla_sdk/resources/projects.py:59` - Create new project. - `delete(self, project_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/projects.py:82` + - Source: `nexla_sdk/resources/projects.py:87` - Delete project. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, project_id: int, expand: bool = False) -> nexla_sdk.models.projects.responses.Project` - - Source: `nexla_sdk/resources/projects.py:38` + - Source: `nexla_sdk/resources/projects.py:43` - Get single project by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_flows(self, project_id: int) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/projects.py:94` + - Source: `nexla_sdk/resources/projects.py:99` - Get flows in project. - `list(self, expand: bool = False, **kwargs) -> List[nexla_sdk.models.projects.responses.Project]` - - Source: `nexla_sdk/resources/projects.py:16` + - Source: `nexla_sdk/resources/projects.py:21` - List projects with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `remove_data_flows(self, project_id: int, flows: Optional[nexla_sdk.models.projects.requests.ProjectFlowList] = None) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:177` + - Source: `nexla_sdk/resources/projects.py:190` - Backward-compatible alias for removing flows from a project. - `remove_flows(self, project_id: int, flows: Optional[nexla_sdk.models.projects.requests.ProjectFlowList] = None) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:142` + - Source: `nexla_sdk/resources/projects.py:151` - Remove flows from project. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `replace_data_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:169` + - Source: `nexla_sdk/resources/projects.py:180` - Backward-compatible alias for replacing all flows in a project. - `replace_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:125` + - Source: `nexla_sdk/resources/projects.py:132` - Replace all flows in project. - `search_flows(self, project_id: int, filters: List[Dict[str, Any]]) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/projects.py:187` + - Source: `nexla_sdk/resources/projects.py:200` - Search flows in a project using filter criteria. - `update(self, project_id: int, data: nexla_sdk.models.projects.requests.ProjectUpdate) -> nexla_sdk.models.projects.responses.Project` - - Source: `nexla_sdk/resources/projects.py:69` + - Source: `nexla_sdk/resources/projects.py:74` - Update project. ### RuntimesResource -Defined in `nexla_sdk/resources/runtimes.py:7` +Defined in `nexla_sdk/resources/runtimes.py:8` Resource for managing custom runtimes. Methods: - `activate(self, runtime_id: int) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:44` + - Source: `nexla_sdk/resources/runtimes.py:45` - Activate a custom runtime. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.runtimes.requests.RuntimeCreate) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:20` + - Source: `nexla_sdk/resources/runtimes.py:21` - Create a new custom runtime. - `delete(self, runtime_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/runtimes.py:39` + - Source: `nexla_sdk/resources/runtimes.py:40` - Delete a custom runtime by ID. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, runtime_id: int) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:26` + - Source: `nexla_sdk/resources/runtimes.py:27` - Get a custom runtime by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self) -> List[nexla_sdk.models.runtimes.responses.Runtime]` - - Source: `nexla_sdk/resources/runtimes.py:15` + - Source: `nexla_sdk/resources/runtimes.py:16` - List custom runtimes. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, runtime_id: int) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:50` + - Source: `nexla_sdk/resources/runtimes.py:51` - Pause a custom runtime. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, runtime_id: int, data: nexla_sdk.models.runtimes.requests.RuntimeUpdate) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:32` + - Source: `nexla_sdk/resources/runtimes.py:33` - Update a custom runtime by ID. ### SelfSignupResource -Defined in `nexla_sdk/resources/self_signup.py:6` +Defined in `nexla_sdk/resources/self_signup.py:7` Resource for self sign-up and admin endpoints. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `add_blocked_domain(self, domain: str) -> nexla_sdk.models.self_signup.responses.BlockedDomain` - - Source: `nexla_sdk/resources/self_signup.py:34` + - Source: `nexla_sdk/resources/self_signup.py:39` - `approve_request(self, request_id: str) -> nexla_sdk.models.self_signup.responses.SelfSignupRequest` - - Source: `nexla_sdk/resources/self_signup.py:26` + - Source: `nexla_sdk/resources/self_signup.py:29` - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:199` + - Source: `nexla_sdk/resources/base_resource.py:229` - Create new resource. - `delete(self, resource_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/base_resource.py:236` + - Source: `nexla_sdk/resources/base_resource.py:274` - Delete resource. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_blocked_domain(self, domain_id: str) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/self_signup.py:42` + - Source: `nexla_sdk/resources/self_signup.py:51` - `get(self, resource_id: int, expand: bool = False) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:175` + - Source: `nexla_sdk/resources/base_resource.py:199` - Get single resource by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, page: Optional[int] = None, per_page: Optional[int] = None, access_role: Optional[str] = None, **params) -> List[~T]` - - Source: `nexla_sdk/resources/base_resource.py:106` + - Source: `nexla_sdk/resources/base_resource.py:130` - List resources with optional filters. - `list_blocked_domains(self) -> List[nexla_sdk.models.self_signup.responses.BlockedDomain]` - - Source: `nexla_sdk/resources/self_signup.py:30` + - Source: `nexla_sdk/resources/self_signup.py:35` - `list_requests(self) -> List[nexla_sdk.models.self_signup.responses.SelfSignupRequest]` - - Source: `nexla_sdk/resources/self_signup.py:22` + - Source: `nexla_sdk/resources/self_signup.py:25` - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `signup(self, payload: Dict[str, Any]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/self_signup.py:15` + - Source: `nexla_sdk/resources/self_signup.py:16` - `update(self, resource_id: int, data: Union[Dict[str, Any], Any]) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:220` + - Source: `nexla_sdk/resources/base_resource.py:252` - Update resource. - `update_blocked_domain(self, domain_id: str, domain: str) -> nexla_sdk.models.self_signup.responses.BlockedDomain` - - Source: `nexla_sdk/resources/self_signup.py:38` + - Source: `nexla_sdk/resources/self_signup.py:45` - `verify_email(self, token: str) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/self_signup.py:18` + - Source: `nexla_sdk/resources/self_signup.py:19` ### SourcesResource -Defined in `nexla_sdk/resources/sources.py:7` +Defined in `nexla_sdk/resources/sources.py:12` Resource for managing data sources. Methods: - `activate(self, source_id: int) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:93` + - Source: `nexla_sdk/resources/sources.py:98` - Activate source. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, source_id: int, options: Optional[nexla_sdk.models.sources.requests.SourceCopyOptions] = None) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:117` + - Source: `nexla_sdk/resources/sources.py:122` - Copy a source. - `create(self, data: nexla_sdk.models.sources.requests.SourceCreate) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:53` + - Source: `nexla_sdk/resources/sources.py:58` - Create new source. - `delete(self, source_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/sources.py:81` + - Source: `nexla_sdk/resources/sources.py:86` - Delete source. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, source_id: int, expand: bool = False) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:37` + - Source: `nexla_sdk/resources/sources.py:42` - Get single source by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, **kwargs) -> List[nexla_sdk.models.sources.responses.Source]` - - Source: `nexla_sdk/resources/sources.py:15` + - Source: `nexla_sdk/resources/sources.py:20` - List sources with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, source_id: int) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:105` + - Source: `nexla_sdk/resources/sources.py:110` - Pause source. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, source_id: int, data: nexla_sdk.models.sources.requests.SourceUpdate) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:68` + - Source: `nexla_sdk/resources/sources.py:73` - Update source. ### TeamsResource -Defined in `nexla_sdk/resources/teams.py:7` +Defined in `nexla_sdk/resources/teams.py:8` Resource for managing teams. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `add_members(self, team_id: int, members: nexla_sdk.models.teams.requests.TeamMemberList) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:103` + - Source: `nexla_sdk/resources/teams.py:104` - Add members to team. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.teams.requests.TeamCreate) -> nexla_sdk.models.teams.responses.Team` - - Source: `nexla_sdk/resources/teams.py:49` + - Source: `nexla_sdk/resources/teams.py:50` - Create new team. - `delete(self, team_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/teams.py:77` + - Source: `nexla_sdk/resources/teams.py:78` - Delete team. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, team_id: int, expand: bool = False) -> nexla_sdk.models.teams.responses.Team` - - Source: `nexla_sdk/resources/teams.py:33` + - Source: `nexla_sdk/resources/teams.py:34` - Get single team by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `get_members(self, team_id: int) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:89` + - Source: `nexla_sdk/resources/teams.py:90` - Get team members. - `list(self, **kwargs) -> List[nexla_sdk.models.teams.responses.Team]` - - Source: `nexla_sdk/resources/teams.py:15` + - Source: `nexla_sdk/resources/teams.py:16` - List teams with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `remove_members(self, team_id: int, members: Optional[nexla_sdk.models.teams.requests.TeamMemberList] = None) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:133` + - Source: `nexla_sdk/resources/teams.py:136` - Remove members from team. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `replace_members(self, team_id: int, members: nexla_sdk.models.teams.requests.TeamMemberList) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:118` + - Source: `nexla_sdk/resources/teams.py:119` - Replace all team members. - `update(self, team_id: int, data: nexla_sdk.models.teams.requests.TeamUpdate) -> nexla_sdk.models.teams.responses.Team` - - Source: `nexla_sdk/resources/teams.py:64` + - Source: `nexla_sdk/resources/teams.py:65` - Update team. ### TransformsResource -Defined in `nexla_sdk/resources/transforms.py:7` +Defined in `nexla_sdk/resources/transforms.py:8` Resource for reusable record transforms (aliased to code containers). Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, transform_id: int) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:49` + - Source: `nexla_sdk/resources/transforms.py:50` - Copy a transform by ID. - `create(self, data: nexla_sdk.models.transforms.requests.TransformCreate) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:37` + - Source: `nexla_sdk/resources/transforms.py:38` - Create a new transform. - `delete(self, transform_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/transforms.py:45` + - Source: `nexla_sdk/resources/transforms.py:46` - Delete a transform by ID. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `get(self, transform_id: int, expand: bool = False) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:33` + - Source: `nexla_sdk/resources/transforms.py:34` - Get a transform by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_audit_log(self, resource_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/base_resource.py:293` +- `get_audit_log(self, resource_id: int, from_date: Optional[str] = None, to_date: Optional[str] = None, event_filter: Optional[str] = None, change_filter: Optional[str] = None, page: Optional[int] = None, per_page: Optional[int] = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/base_resource.py:339` - Get audit log for resource. - `list(self, **kwargs) -> List[nexla_sdk.models.transforms.responses.Transform]` - - Source: `nexla_sdk/resources/transforms.py:15` + - Source: `nexla_sdk/resources/transforms.py:16` - List transforms with optional filters. - `list_public(self) -> List[nexla_sdk.models.transforms.responses.Transform]` - - Source: `nexla_sdk/resources/transforms.py:53` + - Source: `nexla_sdk/resources/transforms.py:54` - List publicly shared transforms. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `update(self, transform_id: int, data: nexla_sdk.models.transforms.requests.TransformUpdate) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:41` + - Source: `nexla_sdk/resources/transforms.py:42` - Update an existing transform. ### UsersResource -Defined in `nexla_sdk/resources/users.py:8` +Defined in `nexla_sdk/resources/users.py:9` Resource for managing users. Methods: - `activate(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:249` + - Source: `nexla_sdk/resources/base_resource.py:289` - Activate resource. - `add_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:324` + - Source: `nexla_sdk/resources/base_resource.py:398` - Add access control rules. - `copy(self, resource_id: int, options: Union[Dict[str, Any], Any, NoneType] = None) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:277` + - Source: `nexla_sdk/resources/base_resource.py:321` - Copy resource. - `create(self, data: nexla_sdk.models.users.requests.UserCreate) -> nexla_sdk.models.users.responses.User` - - Source: `nexla_sdk/resources/users.py:62` + - Source: `nexla_sdk/resources/users.py:65` - Create new user. - `create_quarantine_settings(self, user_id: int, data_credentials_id: int, config: Dict[str, Any]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:131` + - Source: `nexla_sdk/resources/users.py:134` - Create quarantine data export settings. - `delete(self, user_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:90` + - Source: `nexla_sdk/resources/users.py:93` - Delete user. - `delete_accessors(self, resource_id: int, accessors: Optional[List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]] = None) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:364` + - Source: `nexla_sdk/resources/base_resource.py:450` - Delete access control rules. - `delete_quarantine_settings(self, user_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:169` + - Source: `nexla_sdk/resources/users.py:168` - Delete quarantine data export settings. - `get(self, user_id: int, expand: bool = False) -> nexla_sdk.models.users.responses.User` - - Source: `nexla_sdk/resources/users.py:40` + - Source: `nexla_sdk/resources/users.py:43` - Get user by ID. - `get_accessors(self, resource_id: int) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:306` + - Source: `nexla_sdk/resources/base_resource.py:380` - Get access control rules for resource. -- `get_account_metrics(self, user_id: int, from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:224` +- `get_account_metrics(self, user_id: int, from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None, aggregate: Optional[str] = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/users.py:258` - Get total account metrics for user. -- `get_audit_log(self, user_id: int, **params) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/users.py:182` +- `get_audit_log(self, user_id: int, from_date: str = None, to_date: str = None, event_filter: str = None, change_filter: str = None, page: int = None, per_page: int = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/users.py:181` - Get audit log for a user. - `get_current(self) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:113` + - Source: `nexla_sdk/resources/users.py:116` - Get info on current user (includes org memberships and current org info). -- `get_daily_metrics(self, user_id: int, resource_type: nexla_sdk.models.metrics.enums.UserMetricResourceType, from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:270` +- `get_daily_metrics(self, user_id: int, resource_type: Union[nexla_sdk.models.metrics.enums.UserMetricResourceType, str], from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/users.py:339` - Get daily data processing metrics for a user. - `get_dashboard_metrics(self, user_id: int, access_role: Optional[str] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:250` + - Source: `nexla_sdk/resources/users.py:319` - Get 24 hour flow stats for user. +- `get_flow_status_metrics(self, user_id: int, from_date: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/users.py:290` + - Get flow status metrics for a user. - `get_quarantine_settings(self, user_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:118` + - Source: `nexla_sdk/resources/users.py:121` - Get quarantine data export settings for user. - `get_settings(self) -> List[nexla_sdk.models.users.responses.UserSettings]` - - Source: `nexla_sdk/resources/users.py:102` + - Source: `nexla_sdk/resources/users.py:105` - Get current user's settings. - `get_transferable_resources(self, user_id: int, org_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:190` + - Source: `nexla_sdk/resources/users.py:225` - Get a list of resources owned by a user that can be transferred. - `list(self, expand: bool = False, **kwargs) -> List[nexla_sdk.models.users.responses.User]` - - Source: `nexla_sdk/resources/users.py:16` + - Source: `nexla_sdk/resources/users.py:17` - List users with optional filters. - `paginate(self, per_page: int = 20, access_role: Optional[str] = None, **params) -> nexla_sdk.utils.pagination.Paginator[~T]` - - Source: `nexla_sdk/resources/base_resource.py:153` + - Source: `nexla_sdk/resources/base_resource.py:181` - Get paginator for iterating through resources. - `pause(self, resource_id: int) -> ~T` - - Source: `nexla_sdk/resources/base_resource.py:263` + - Source: `nexla_sdk/resources/base_resource.py:305` - Pause resource. - `replace_accessors(self, resource_id: int, accessors: List[Union[nexla_sdk.models.access.requests.UserAccessorRequest, nexla_sdk.models.access.requests.TeamAccessorRequest, nexla_sdk.models.access.requests.OrgAccessorRequest]]) -> List[Union[nexla_sdk.models.access.responses.UserAccessorResponse, nexla_sdk.models.access.responses.TeamAccessorResponse, nexla_sdk.models.access.responses.OrgAccessorResponse]]` - - Source: `nexla_sdk/resources/base_resource.py:344` + - Source: `nexla_sdk/resources/base_resource.py:424` - Replace all access control rules. - `transfer_resources(self, user_id: int, org_id: int, delegate_owner_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:205` + - Source: `nexla_sdk/resources/users.py:240` - Transfer a user's resources to another user within an organization. - `update(self, user_id: int, data: nexla_sdk.models.users.requests.UserUpdate) -> nexla_sdk.models.users.responses.User` - - Source: `nexla_sdk/resources/users.py:77` + - Source: `nexla_sdk/resources/users.py:80` - Update user. - `update_quarantine_settings(self, user_id: int, data: Dict[str, Any]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:153` + - Source: `nexla_sdk/resources/users.py:152` - Update quarantine data export settings. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.metrics.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.metrics.mdx index e7568f4..7e492a4 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.metrics.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.metrics.mdx @@ -10,7 +10,7 @@ keywords: [Nexla, SDK, Python, API] ### MetricsResource -Defined in `nexla_sdk/resources/metrics.py:10` +Defined in `nexla_sdk/resources/metrics.py:26` Resource for retrieving metrics. @@ -20,17 +20,25 @@ so no additional typed overrides are needed. Methods: -- `get_flow_logs(self, resource_type: str, resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/metrics.py:120` -- `get_flow_metrics(self, resource_type: str, resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/metrics.py:97` +- `get_flow_logs(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, run_id: int, from_ts: int, to_ts: int = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.metrics.responses.ResourceFlowLogsResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/metrics.py:216` + - Get flow logs for a flow run keyed by resource ID. +- `get_flow_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, from_date: str, to_date: str = None, groupby: str = None, orderby: str = None, page: int = None, per_page: int = None) -> Union[nexla_sdk.models.metrics.responses.ResourceFlowMetricsResponse, Dict[str, Any]]` + - Source: `nexla_sdk/resources/metrics.py:162` + - Get flow metrics for a flow node keyed by resource ID. +- `get_flow_metrics_summary(self, period: str) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/metrics.py:148` + - Get flow metrics summary for a given period. - `get_rate_limits(self) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/metrics.py:86` + - Source: `nexla_sdk/resources/metrics.py:111` - Get current rate limit and usage. -- `get_resource_daily_metrics(self, resource_type: nexla_sdk.models.metrics.enums.ResourceType, resource_id: int, from_date: str, to_date: Optional[str] = None) -> nexla_sdk.models.metrics.responses.MetricsResponse` - - Source: `nexla_sdk/resources/metrics.py:23` +- `get_resource_daily_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, from_date: str, to_date: Optional[str] = None) -> nexla_sdk.models.metrics.responses.MetricsResponse` + - Source: `nexla_sdk/resources/metrics.py:39` - Get daily metrics for a resource. -- `get_resource_metrics_by_run(self, resource_type: nexla_sdk.models.metrics.enums.ResourceType, resource_id: int, groupby: Optional[str] = None, orderby: Optional[str] = None, page: Optional[int] = None, size: Optional[int] = None) -> nexla_sdk.models.metrics.responses.MetricsByRunResponse` - - Source: `nexla_sdk/resources/metrics.py:51` +- `get_resource_flow_metrics(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, metric_type: str = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/metrics.py:121` + - Get flow metrics for a specific resource. +- `get_resource_metrics_by_run(self, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], resource_id: int, groupby: Optional[str] = None, orderby: Optional[str] = None, page: Optional[int] = None, size: Optional[int] = None) -> nexla_sdk.models.metrics.responses.MetricsByRunResponse` + - Source: `nexla_sdk/resources/metrics.py:70` - Get metrics by run for a resource. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.nexsets.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.nexsets.mdx index 909da1d..470c15b 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.nexsets.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.nexsets.mdx @@ -10,40 +10,40 @@ keywords: [Nexla, SDK, Python, API] ### NexsetsResource -Defined in `nexla_sdk/resources/nexsets.py:7` +Defined in `nexla_sdk/resources/nexsets.py:12` Resource for managing nexsets (data sets). Methods: - `activate(self, set_id: int) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:89` + - Source: `nexla_sdk/resources/nexsets.py:94` - Activate nexset. - `copy(self, set_id: int, options: Optional[nexla_sdk.models.nexsets.requests.NexsetCopyOptions] = None) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:144` + - Source: `nexla_sdk/resources/nexsets.py:147` - Copy a nexset. - `create(self, data: nexla_sdk.models.nexsets.requests.NexsetCreate) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:49` + - Source: `nexla_sdk/resources/nexsets.py:54` - Create new nexset. - `delete(self, set_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/nexsets.py:77` + - Source: `nexla_sdk/resources/nexsets.py:82` - Delete nexset. - `docs_recommendation(self, set_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/nexsets.py:158` + - Source: `nexla_sdk/resources/nexsets.py:161` - Generate AI suggestion for Nexset documentation. - `get(self, set_id: int, expand: bool = False) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:33` + - Source: `nexla_sdk/resources/nexsets.py:38` - Get single nexset by ID. - `get_samples(self, set_id: int, count: int = 10, include_metadata: bool = False, live: bool = False) -> List[nexla_sdk.models.nexsets.responses.NexsetSample]` - - Source: `nexla_sdk/resources/nexsets.py:113` + - Source: `nexla_sdk/resources/nexsets.py:118` - Get sample records from a nexset. - `list(self, **kwargs) -> List[nexla_sdk.models.nexsets.responses.Nexset]` - - Source: `nexla_sdk/resources/nexsets.py:15` + - Source: `nexla_sdk/resources/nexsets.py:20` - List nexsets with optional filters. - `pause(self, set_id: int) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:101` + - Source: `nexla_sdk/resources/nexsets.py:106` - Pause nexset. - `update(self, set_id: int, data: nexla_sdk.models.nexsets.requests.NexsetUpdate) -> nexla_sdk.models.nexsets.responses.Nexset` - - Source: `nexla_sdk/resources/nexsets.py:64` + - Source: `nexla_sdk/resources/nexsets.py:69` - Update nexset. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.notifications.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.notifications.mdx index 2051ce6..cfe3b02 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.notifications.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.notifications.mdx @@ -10,73 +10,73 @@ keywords: [Nexla, SDK, Python, API] ### NotificationsResource -Defined in `nexla_sdk/resources/notifications.py:13` +Defined in `nexla_sdk/resources/notifications.py:19` Resource for managing notifications. Methods: - `create_channel_setting(self, data: nexla_sdk.models.notifications.requests.NotificationChannelSettingCreate) -> nexla_sdk.models.notifications.responses.NotificationChannelSetting` - - Source: `nexla_sdk/resources/notifications.py:190` + - Source: `nexla_sdk/resources/notifications.py:195` - Create notification channel setting. - `create_setting(self, data: nexla_sdk.models.notifications.requests.NotificationSettingCreate) -> nexla_sdk.models.notifications.responses.NotificationSetting` - - Source: `nexla_sdk/resources/notifications.py:276` + - Source: `nexla_sdk/resources/notifications.py:285` - Create notification setting. - `delete(self, notification_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:34` + - Source: `nexla_sdk/resources/notifications.py:40` - Delete notification. - `delete_all(self) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:82` + - Source: `nexla_sdk/resources/notifications.py:90` - Delete all notifications. - `delete_channel_setting(self, setting_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:235` + - Source: `nexla_sdk/resources/notifications.py:242` - Delete notification channel setting. - `delete_setting(self, setting_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:321` + - Source: `nexla_sdk/resources/notifications.py:330` - Delete notification setting. - `get(self, notification_id: int, expand: bool = False) -> nexla_sdk.models.notifications.responses.Notification` - - Source: `nexla_sdk/resources/notifications.py:21` + - Source: `nexla_sdk/resources/notifications.py:27` - Get single notification by ID. - `get_channel_setting(self, setting_id: int) -> nexla_sdk.models.notifications.responses.NotificationChannelSetting` - - Source: `nexla_sdk/resources/notifications.py:204` + - Source: `nexla_sdk/resources/notifications.py:211` - Get notification channel setting. - `get_count(self, read: Optional[int] = None) -> nexla_sdk.models.notifications.responses.NotificationCount` - - Source: `nexla_sdk/resources/notifications.py:92` + - Source: `nexla_sdk/resources/notifications.py:100` - Get notification count. - `get_resource_settings(self, resource_type: str, resource_id: int, expand: bool = False, filter_overridden: bool = False, notification_type_id: Optional[int] = None) -> List[nexla_sdk.models.notifications.responses.NotificationSetting]` - - Source: `nexla_sdk/resources/notifications.py:352` + - Source: `nexla_sdk/resources/notifications.py:361` - Get notification settings for a resource. - `get_setting(self, setting_id: int) -> nexla_sdk.models.notifications.responses.NotificationSetting` - - Source: `nexla_sdk/resources/notifications.py:290` + - Source: `nexla_sdk/resources/notifications.py:299` - Get notification setting. - `get_settings_by_type(self, notification_type_id: int, expand: bool = False) -> List[nexla_sdk.models.notifications.responses.NotificationSetting]` - - Source: `nexla_sdk/resources/notifications.py:334` + - Source: `nexla_sdk/resources/notifications.py:343` - Get notification settings for a type. - `get_type(self, event_type: str, resource_type: str) -> nexla_sdk.models.notifications.responses.NotificationType` - - Source: `nexla_sdk/resources/notifications.py:159` + - Source: `nexla_sdk/resources/notifications.py:167` - Get specific notification type. - `get_types(self, status: Optional[str] = None) -> List[nexla_sdk.models.notifications.responses.NotificationType]` - - Source: `nexla_sdk/resources/notifications.py:144` + - Source: `nexla_sdk/resources/notifications.py:152` - Get all notification types. - `list(self, read: Optional[int] = None, level: Optional[str] = None, from_timestamp: Optional[int] = None, to_timestamp: Optional[int] = None, **kwargs) -> List[nexla_sdk.models.notifications.responses.Notification]` - - Source: `nexla_sdk/resources/notifications.py:46` + - Source: `nexla_sdk/resources/notifications.py:52` - List notifications with optional filters. - `list_channel_settings(self) -> List[nexla_sdk.models.notifications.responses.NotificationChannelSetting]` - - Source: `nexla_sdk/resources/notifications.py:179` + - Source: `nexla_sdk/resources/notifications.py:184` - List notification channel settings. - `list_settings(self, event_type: Optional[str] = None, resource_type: Optional[str] = None, status: Optional[str] = None) -> List[nexla_sdk.models.notifications.responses.NotificationSetting]` - - Source: `nexla_sdk/resources/notifications.py:249` + - Source: `nexla_sdk/resources/notifications.py:256` - List notification settings. - `mark_read(self, notification_ids: Union[List[int], str]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:107` + - Source: `nexla_sdk/resources/notifications.py:115` - Mark notifications as read. - `mark_unread(self, notification_ids: Union[List[int], str]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/notifications.py:125` + - Source: `nexla_sdk/resources/notifications.py:133` - Mark notifications as unread. - `update_channel_setting(self, setting_id: int, data: nexla_sdk.models.notifications.requests.NotificationChannelSettingUpdate) -> nexla_sdk.models.notifications.responses.NotificationChannelSetting` - - Source: `nexla_sdk/resources/notifications.py:218` + - Source: `nexla_sdk/resources/notifications.py:225` - Update notification channel setting. - `update_setting(self, setting_id: int, data: nexla_sdk.models.notifications.requests.NotificationSettingUpdate) -> nexla_sdk.models.notifications.responses.NotificationSetting` - - Source: `nexla_sdk/resources/notifications.py:304` + - Source: `nexla_sdk/resources/notifications.py:313` - Update notification setting. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.org_auth_configs.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.org_auth_configs.mdx index 801167c..97c87da 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.org_auth_configs.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.org_auth_configs.mdx @@ -10,28 +10,28 @@ keywords: [Nexla, SDK, Python, API] ### OrgAuthConfigsResource -Defined in `nexla_sdk/resources/org_auth_configs.py:7` +Defined in `nexla_sdk/resources/org_auth_configs.py:8` Resource for organization authentication configurations (/api_auth_configs). Methods: - `create(self, payload: nexla_sdk.models.org_auth_configs.requests.AuthConfigPayload) -> nexla_sdk.models.org_auth_configs.responses.AuthConfig` - - Source: `nexla_sdk/resources/org_auth_configs.py:30` + - Source: `nexla_sdk/resources/org_auth_configs.py:31` - Create a new authentication configuration. - `delete(self, auth_config_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/org_auth_configs.py:42` + - Source: `nexla_sdk/resources/org_auth_configs.py:45` - Delete an authentication configuration by ID. - `get(self, auth_config_id: int) -> nexla_sdk.models.org_auth_configs.responses.AuthConfig` - - Source: `nexla_sdk/resources/org_auth_configs.py:25` + - Source: `nexla_sdk/resources/org_auth_configs.py:26` - Get a specific authentication configuration by ID. - `list(self) -> List[nexla_sdk.models.org_auth_configs.responses.AuthConfig]` - - Source: `nexla_sdk/resources/org_auth_configs.py:15` + - Source: `nexla_sdk/resources/org_auth_configs.py:16` - List authentication configurations for the current organization. - `list_all(self) -> List[nexla_sdk.models.org_auth_configs.responses.AuthConfig]` - - Source: `nexla_sdk/resources/org_auth_configs.py:20` + - Source: `nexla_sdk/resources/org_auth_configs.py:21` - List all authentication configurations (admin only). - `update(self, auth_config_id: int, payload: nexla_sdk.models.org_auth_configs.requests.AuthConfigPayload) -> nexla_sdk.models.org_auth_configs.responses.AuthConfig` - - Source: `nexla_sdk/resources/org_auth_configs.py:36` + - Source: `nexla_sdk/resources/org_auth_configs.py:37` - Update an existing authentication configuration. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.organizations.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.organizations.mdx index d9e6140..6407785 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.organizations.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.organizations.mdx @@ -10,72 +10,75 @@ keywords: [Nexla, SDK, Python, API] ### OrganizationsResource -Defined in `nexla_sdk/resources/organizations.py:15` +Defined in `nexla_sdk/resources/organizations.py:22` Resource for managing organizations. Methods: - `activate_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberActivateDeactivateRequest) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:164` + - Source: `nexla_sdk/resources/organizations.py:173` - Activate members in an organization. - `add_custodians(self, org_id: int, payload: nexla_sdk.models.organizations.custodians.OrgCustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/organizations.py:291` + - Source: `nexla_sdk/resources/organizations.py:365` - `create(self, data: nexla_sdk.models.organizations.requests.OrganizationCreate) -> nexla_sdk.models.organizations.responses.Organization` - - Source: `nexla_sdk/resources/organizations.py:54` + - Source: `nexla_sdk/resources/organizations.py:61` - Create a new organization. Note: This is an admin-only operation. - `deactivate_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberActivateDeactivateRequest) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:149` + - Source: `nexla_sdk/resources/organizations.py:156` - Deactivate members in an organization. - `delete(self, org_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:79` + - Source: `nexla_sdk/resources/organizations.py:86` - Delete organization. - `delete_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberDelete) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:135` + - Source: `nexla_sdk/resources/organizations.py:142` - Remove members from organization. - `get(self, org_id: int, expand: bool = False) -> nexla_sdk.models.organizations.responses.Organization` - - Source: `nexla_sdk/resources/organizations.py:41` + - Source: `nexla_sdk/resources/organizations.py:48` - Get single organization by ID. - `get_account_summary(self, org_id: int) -> nexla_sdk.models.organizations.responses.AccountSummary` - - Source: `nexla_sdk/resources/organizations.py:179` + - Source: `nexla_sdk/resources/organizations.py:190` - Get account summary statistics for an organization. -- `get_audit_log(self, org_id: int, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/organizations.py:212` +- `get_audit_log(self, org_id: int, from_date: str = None, to_date: str = None, event_filter: str = None, change_filter: str = None, page: int = None, per_page: int = None) -> List[nexla_sdk.models.common.LogEntry]` + - Source: `nexla_sdk/resources/organizations.py:227` - Get audit log for an organization. - `get_auth_settings(self, org_id: int) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/organizations.py:243` + - Source: `nexla_sdk/resources/organizations.py:316` - Get authentication settings for organization. - `get_current_account_summary(self) -> nexla_sdk.models.organizations.responses.AccountSummary` - - Source: `nexla_sdk/resources/organizations.py:193` + - Source: `nexla_sdk/resources/organizations.py:204` - Get account summary for the current organization based on auth token. - `get_custodians(self, org_id: int) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/organizations.py:276` + - Source: `nexla_sdk/resources/organizations.py:348` +- `get_flow_status_metrics(self, org_id: int, from_date: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/organizations.py:269` + - Get flow status metrics for an organization. - `get_members(self, org_id: int) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:91` + - Source: `nexla_sdk/resources/organizations.py:98` - Get all members in organization. -- `get_org_flow_account_metrics(self, org_id: int, from_date: str, to_date: str = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:204` +- `get_org_flow_account_metrics(self, org_id: int, from_date: str, to_date: str = None, aggregate: str = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/organizations.py:215` - Get total account metrics for an organization (flows). -- `get_resource_audit_log(self, org_id: int, resource_type: str, **params) -> List[nexla_sdk.models.common.LogEntry]` - - Source: `nexla_sdk/resources/organizations.py:227` +- `get_resource_audit_log(self, org_id: int, resource_type: Union[nexla_sdk.models.metrics.enums.ResourceType, str], **params) -> List[nexla_sdk.models.common.LogEntry]` + - Source: `nexla_sdk/resources/organizations.py:294` - Get audit log for a specific resource type within an organization. - `list(self, **kwargs) -> List[nexla_sdk.models.organizations.responses.Organization]` - - Source: `nexla_sdk/resources/organizations.py:23` + - Source: `nexla_sdk/resources/organizations.py:30` - List organizations with optional filters. - `remove_custodians(self, org_id: int, payload: nexla_sdk.models.organizations.custodians.OrgCustodiansPayload) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:299` + - Source: `nexla_sdk/resources/organizations.py:375` - `replace_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberList) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:120` + - Source: `nexla_sdk/resources/organizations.py:127` - Replace all members in organization. - `update(self, org_id: int, data: nexla_sdk.models.organizations.requests.OrganizationUpdate) -> nexla_sdk.models.organizations.responses.Organization` - - Source: `nexla_sdk/resources/organizations.py:66` + - Source: `nexla_sdk/resources/organizations.py:73` - Update organization. - `update_auth_setting(self, org_id: int, auth_setting_id: int, enabled: bool) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/organizations.py:256` + - Source: `nexla_sdk/resources/organizations.py:329` - Enable/disable authentication configuration. - `update_custodians(self, org_id: int, payload: nexla_sdk.models.organizations.custodians.OrgCustodiansPayload) -> List[nexla_sdk.models.organizations.responses.CustodianUser]` - - Source: `nexla_sdk/resources/organizations.py:283` + - Source: `nexla_sdk/resources/organizations.py:355` - `update_members(self, org_id: int, members: nexla_sdk.models.organizations.requests.OrgMemberList) -> List[nexla_sdk.models.organizations.responses.OrgMember]` - - Source: `nexla_sdk/resources/organizations.py:105` + - Source: `nexla_sdk/resources/organizations.py:112` - Add or update members in organization. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.projects.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.projects.mdx index 3d1ddc6..09350d8 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.projects.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.projects.mdx @@ -10,49 +10,49 @@ keywords: [Nexla, SDK, Python, API] ### ProjectsResource -Defined in `nexla_sdk/resources/projects.py:8` +Defined in `nexla_sdk/resources/projects.py:13` Resource for managing projects. Methods: - `add_data_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:161` + - Source: `nexla_sdk/resources/projects.py:170` - Backward-compatible alias for adding flows to a project. - `add_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:108` + - Source: `nexla_sdk/resources/projects.py:113` - Add flows to project. - `create(self, data: nexla_sdk.models.projects.requests.ProjectCreate) -> nexla_sdk.models.projects.responses.Project` - - Source: `nexla_sdk/resources/projects.py:54` + - Source: `nexla_sdk/resources/projects.py:59` - Create new project. - `delete(self, project_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/projects.py:82` + - Source: `nexla_sdk/resources/projects.py:87` - Delete project. - `get(self, project_id: int, expand: bool = False) -> nexla_sdk.models.projects.responses.Project` - - Source: `nexla_sdk/resources/projects.py:38` + - Source: `nexla_sdk/resources/projects.py:43` - Get single project by ID. - `get_flows(self, project_id: int) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/projects.py:94` + - Source: `nexla_sdk/resources/projects.py:99` - Get flows in project. - `list(self, expand: bool = False, **kwargs) -> List[nexla_sdk.models.projects.responses.Project]` - - Source: `nexla_sdk/resources/projects.py:16` + - Source: `nexla_sdk/resources/projects.py:21` - List projects with optional filters. - `remove_data_flows(self, project_id: int, flows: Optional[nexla_sdk.models.projects.requests.ProjectFlowList] = None) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:177` + - Source: `nexla_sdk/resources/projects.py:190` - Backward-compatible alias for removing flows from a project. - `remove_flows(self, project_id: int, flows: Optional[nexla_sdk.models.projects.requests.ProjectFlowList] = None) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:142` + - Source: `nexla_sdk/resources/projects.py:151` - Remove flows from project. - `replace_data_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:169` + - Source: `nexla_sdk/resources/projects.py:180` - Backward-compatible alias for replacing all flows in a project. - `replace_flows(self, project_id: int, flows: nexla_sdk.models.projects.requests.ProjectFlowList) -> List[nexla_sdk.models.projects.responses.ProjectDataFlow]` - - Source: `nexla_sdk/resources/projects.py:125` + - Source: `nexla_sdk/resources/projects.py:132` - Replace all flows in project. - `search_flows(self, project_id: int, filters: List[Dict[str, Any]]) -> nexla_sdk.models.flows.responses.FlowResponse` - - Source: `nexla_sdk/resources/projects.py:187` + - Source: `nexla_sdk/resources/projects.py:200` - Search flows in a project using filter criteria. - `update(self, project_id: int, data: nexla_sdk.models.projects.requests.ProjectUpdate) -> nexla_sdk.models.projects.responses.Project` - - Source: `nexla_sdk/resources/projects.py:69` + - Source: `nexla_sdk/resources/projects.py:74` - Update project. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.runtimes.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.runtimes.mdx index 1b8a4e8..3dbe95b 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.runtimes.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.runtimes.mdx @@ -10,31 +10,31 @@ keywords: [Nexla, SDK, Python, API] ### RuntimesResource -Defined in `nexla_sdk/resources/runtimes.py:7` +Defined in `nexla_sdk/resources/runtimes.py:8` Resource for managing custom runtimes. Methods: - `activate(self, runtime_id: int) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:44` + - Source: `nexla_sdk/resources/runtimes.py:45` - Activate a custom runtime. - `create(self, data: nexla_sdk.models.runtimes.requests.RuntimeCreate) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:20` + - Source: `nexla_sdk/resources/runtimes.py:21` - Create a new custom runtime. - `delete(self, runtime_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/runtimes.py:39` + - Source: `nexla_sdk/resources/runtimes.py:40` - Delete a custom runtime by ID. - `get(self, runtime_id: int) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:26` + - Source: `nexla_sdk/resources/runtimes.py:27` - Get a custom runtime by ID. - `list(self) -> List[nexla_sdk.models.runtimes.responses.Runtime]` - - Source: `nexla_sdk/resources/runtimes.py:15` + - Source: `nexla_sdk/resources/runtimes.py:16` - List custom runtimes. - `pause(self, runtime_id: int) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:50` + - Source: `nexla_sdk/resources/runtimes.py:51` - Pause a custom runtime. - `update(self, runtime_id: int, data: nexla_sdk.models.runtimes.requests.RuntimeUpdate) -> nexla_sdk.models.runtimes.responses.Runtime` - - Source: `nexla_sdk/resources/runtimes.py:32` + - Source: `nexla_sdk/resources/runtimes.py:33` - Update a custom runtime by ID. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.self_signup.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.self_signup.mdx index d435c3d..4f77c91 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.self_signup.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.self_signup.mdx @@ -10,26 +10,26 @@ keywords: [Nexla, SDK, Python, API] ### SelfSignupResource -Defined in `nexla_sdk/resources/self_signup.py:6` +Defined in `nexla_sdk/resources/self_signup.py:7` Resource for self sign-up and admin endpoints. Methods: - `add_blocked_domain(self, domain: str) -> nexla_sdk.models.self_signup.responses.BlockedDomain` - - Source: `nexla_sdk/resources/self_signup.py:34` + - Source: `nexla_sdk/resources/self_signup.py:39` - `approve_request(self, request_id: str) -> nexla_sdk.models.self_signup.responses.SelfSignupRequest` - - Source: `nexla_sdk/resources/self_signup.py:26` + - Source: `nexla_sdk/resources/self_signup.py:29` - `delete_blocked_domain(self, domain_id: str) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/self_signup.py:42` + - Source: `nexla_sdk/resources/self_signup.py:51` - `list_blocked_domains(self) -> List[nexla_sdk.models.self_signup.responses.BlockedDomain]` - - Source: `nexla_sdk/resources/self_signup.py:30` + - Source: `nexla_sdk/resources/self_signup.py:35` - `list_requests(self) -> List[nexla_sdk.models.self_signup.responses.SelfSignupRequest]` - - Source: `nexla_sdk/resources/self_signup.py:22` + - Source: `nexla_sdk/resources/self_signup.py:25` - `signup(self, payload: Dict[str, Any]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/self_signup.py:15` + - Source: `nexla_sdk/resources/self_signup.py:16` - `update_blocked_domain(self, domain_id: str, domain: str) -> nexla_sdk.models.self_signup.responses.BlockedDomain` - - Source: `nexla_sdk/resources/self_signup.py:38` + - Source: `nexla_sdk/resources/self_signup.py:45` - `verify_email(self, token: str) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/self_signup.py:18` + - Source: `nexla_sdk/resources/self_signup.py:19` diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.sources.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.sources.mdx index b907a9a..bdc066f 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.sources.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.sources.mdx @@ -10,34 +10,34 @@ keywords: [Nexla, SDK, Python, API] ### SourcesResource -Defined in `nexla_sdk/resources/sources.py:7` +Defined in `nexla_sdk/resources/sources.py:12` Resource for managing data sources. Methods: - `activate(self, source_id: int) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:93` + - Source: `nexla_sdk/resources/sources.py:98` - Activate source. - `copy(self, source_id: int, options: Optional[nexla_sdk.models.sources.requests.SourceCopyOptions] = None) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:117` + - Source: `nexla_sdk/resources/sources.py:122` - Copy a source. - `create(self, data: nexla_sdk.models.sources.requests.SourceCreate) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:53` + - Source: `nexla_sdk/resources/sources.py:58` - Create new source. - `delete(self, source_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/sources.py:81` + - Source: `nexla_sdk/resources/sources.py:86` - Delete source. - `get(self, source_id: int, expand: bool = False) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:37` + - Source: `nexla_sdk/resources/sources.py:42` - Get single source by ID. - `list(self, **kwargs) -> List[nexla_sdk.models.sources.responses.Source]` - - Source: `nexla_sdk/resources/sources.py:15` + - Source: `nexla_sdk/resources/sources.py:20` - List sources with optional filters. - `pause(self, source_id: int) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:105` + - Source: `nexla_sdk/resources/sources.py:110` - Pause source. - `update(self, source_id: int, data: nexla_sdk.models.sources.requests.SourceUpdate) -> nexla_sdk.models.sources.responses.Source` - - Source: `nexla_sdk/resources/sources.py:68` + - Source: `nexla_sdk/resources/sources.py:73` - Update source. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.teams.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.teams.mdx index 9a02cbe..9212270 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.teams.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.teams.mdx @@ -10,37 +10,37 @@ keywords: [Nexla, SDK, Python, API] ### TeamsResource -Defined in `nexla_sdk/resources/teams.py:7` +Defined in `nexla_sdk/resources/teams.py:8` Resource for managing teams. Methods: - `add_members(self, team_id: int, members: nexla_sdk.models.teams.requests.TeamMemberList) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:103` + - Source: `nexla_sdk/resources/teams.py:104` - Add members to team. - `create(self, data: nexla_sdk.models.teams.requests.TeamCreate) -> nexla_sdk.models.teams.responses.Team` - - Source: `nexla_sdk/resources/teams.py:49` + - Source: `nexla_sdk/resources/teams.py:50` - Create new team. - `delete(self, team_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/teams.py:77` + - Source: `nexla_sdk/resources/teams.py:78` - Delete team. - `get(self, team_id: int, expand: bool = False) -> nexla_sdk.models.teams.responses.Team` - - Source: `nexla_sdk/resources/teams.py:33` + - Source: `nexla_sdk/resources/teams.py:34` - Get single team by ID. - `get_members(self, team_id: int) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:89` + - Source: `nexla_sdk/resources/teams.py:90` - Get team members. - `list(self, **kwargs) -> List[nexla_sdk.models.teams.responses.Team]` - - Source: `nexla_sdk/resources/teams.py:15` + - Source: `nexla_sdk/resources/teams.py:16` - List teams with optional filters. - `remove_members(self, team_id: int, members: Optional[nexla_sdk.models.teams.requests.TeamMemberList] = None) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:133` + - Source: `nexla_sdk/resources/teams.py:136` - Remove members from team. - `replace_members(self, team_id: int, members: nexla_sdk.models.teams.requests.TeamMemberList) -> List[nexla_sdk.models.teams.responses.TeamMember]` - - Source: `nexla_sdk/resources/teams.py:118` + - Source: `nexla_sdk/resources/teams.py:119` - Replace all team members. - `update(self, team_id: int, data: nexla_sdk.models.teams.requests.TeamUpdate) -> nexla_sdk.models.teams.responses.Team` - - Source: `nexla_sdk/resources/teams.py:64` + - Source: `nexla_sdk/resources/teams.py:65` - Update team. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.transforms.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.transforms.mdx index f1e57a0..d78c78e 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.transforms.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.transforms.mdx @@ -10,31 +10,31 @@ keywords: [Nexla, SDK, Python, API] ### TransformsResource -Defined in `nexla_sdk/resources/transforms.py:7` +Defined in `nexla_sdk/resources/transforms.py:8` Resource for reusable record transforms (aliased to code containers). Methods: - `copy(self, transform_id: int) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:49` + - Source: `nexla_sdk/resources/transforms.py:50` - Copy a transform by ID. - `create(self, data: nexla_sdk.models.transforms.requests.TransformCreate) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:37` + - Source: `nexla_sdk/resources/transforms.py:38` - Create a new transform. - `delete(self, transform_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/transforms.py:45` + - Source: `nexla_sdk/resources/transforms.py:46` - Delete a transform by ID. - `get(self, transform_id: int, expand: bool = False) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:33` + - Source: `nexla_sdk/resources/transforms.py:34` - Get a transform by ID. - `list(self, **kwargs) -> List[nexla_sdk.models.transforms.responses.Transform]` - - Source: `nexla_sdk/resources/transforms.py:15` + - Source: `nexla_sdk/resources/transforms.py:16` - List transforms with optional filters. - `list_public(self) -> List[nexla_sdk.models.transforms.responses.Transform]` - - Source: `nexla_sdk/resources/transforms.py:53` + - Source: `nexla_sdk/resources/transforms.py:54` - List publicly shared transforms. - `update(self, transform_id: int, data: nexla_sdk.models.transforms.requests.TransformUpdate) -> nexla_sdk.models.transforms.responses.Transform` - - Source: `nexla_sdk/resources/transforms.py:41` + - Source: `nexla_sdk/resources/transforms.py:42` - Update an existing transform. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.users.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.users.mdx index 7fe22f6..116cd21 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.resources.users.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.users.mdx @@ -10,61 +10,64 @@ keywords: [Nexla, SDK, Python, API] ### UsersResource -Defined in `nexla_sdk/resources/users.py:8` +Defined in `nexla_sdk/resources/users.py:9` Resource for managing users. Methods: - `create(self, data: nexla_sdk.models.users.requests.UserCreate) -> nexla_sdk.models.users.responses.User` - - Source: `nexla_sdk/resources/users.py:62` + - Source: `nexla_sdk/resources/users.py:65` - Create new user. - `create_quarantine_settings(self, user_id: int, data_credentials_id: int, config: Dict[str, Any]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:131` + - Source: `nexla_sdk/resources/users.py:134` - Create quarantine data export settings. - `delete(self, user_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:90` + - Source: `nexla_sdk/resources/users.py:93` - Delete user. - `delete_quarantine_settings(self, user_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:169` + - Source: `nexla_sdk/resources/users.py:168` - Delete quarantine data export settings. - `get(self, user_id: int, expand: bool = False) -> nexla_sdk.models.users.responses.User` - - Source: `nexla_sdk/resources/users.py:40` + - Source: `nexla_sdk/resources/users.py:43` - Get user by ID. -- `get_account_metrics(self, user_id: int, from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:224` +- `get_account_metrics(self, user_id: int, from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None, aggregate: Optional[str] = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/users.py:258` - Get total account metrics for user. -- `get_audit_log(self, user_id: int, **params) -> List[Dict[str, Any]]` - - Source: `nexla_sdk/resources/users.py:182` +- `get_audit_log(self, user_id: int, from_date: str = None, to_date: str = None, event_filter: str = None, change_filter: str = None, page: int = None, per_page: int = None) -> List[Dict[str, Any]]` + - Source: `nexla_sdk/resources/users.py:181` - Get audit log for a user. - `get_current(self) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:113` + - Source: `nexla_sdk/resources/users.py:116` - Get info on current user (includes org memberships and current org info). -- `get_daily_metrics(self, user_id: int, resource_type: nexla_sdk.models.metrics.enums.UserMetricResourceType, from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:270` +- `get_daily_metrics(self, user_id: int, resource_type: Union[nexla_sdk.models.metrics.enums.UserMetricResourceType, str], from_date: str, to_date: Optional[str] = None, org_id: Optional[int] = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/users.py:339` - Get daily data processing metrics for a user. - `get_dashboard_metrics(self, user_id: int, access_role: Optional[str] = None) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:250` + - Source: `nexla_sdk/resources/users.py:319` - Get 24 hour flow stats for user. +- `get_flow_status_metrics(self, user_id: int, from_date: str = None, page: int = None, per_page: int = None) -> Dict[str, Any]` + - Source: `nexla_sdk/resources/users.py:290` + - Get flow status metrics for a user. - `get_quarantine_settings(self, user_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:118` + - Source: `nexla_sdk/resources/users.py:121` - Get quarantine data export settings for user. - `get_settings(self) -> List[nexla_sdk.models.users.responses.UserSettings]` - - Source: `nexla_sdk/resources/users.py:102` + - Source: `nexla_sdk/resources/users.py:105` - Get current user's settings. - `get_transferable_resources(self, user_id: int, org_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:190` + - Source: `nexla_sdk/resources/users.py:225` - Get a list of resources owned by a user that can be transferred. - `list(self, expand: bool = False, **kwargs) -> List[nexla_sdk.models.users.responses.User]` - - Source: `nexla_sdk/resources/users.py:16` + - Source: `nexla_sdk/resources/users.py:17` - List users with optional filters. - `transfer_resources(self, user_id: int, org_id: int, delegate_owner_id: int) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:205` + - Source: `nexla_sdk/resources/users.py:240` - Transfer a user's resources to another user within an organization. - `update(self, user_id: int, data: nexla_sdk.models.users.requests.UserUpdate) -> nexla_sdk.models.users.responses.User` - - Source: `nexla_sdk/resources/users.py:77` + - Source: `nexla_sdk/resources/users.py:80` - Update user. - `update_quarantine_settings(self, user_id: int, data: Dict[str, Any]) -> Dict[str, Any]` - - Source: `nexla_sdk/resources/users.py:153` + - Source: `nexla_sdk/resources/users.py:152` - Update quarantine data export settings. diff --git a/docs-site/docs/api/python/modules/nexla_sdk.resources.webhooks.mdx b/docs-site/docs/api/python/modules/nexla_sdk.resources.webhooks.mdx new file mode 100644 index 0000000..af563ad --- /dev/null +++ b/docs-site/docs/api/python/modules/nexla_sdk.resources.webhooks.mdx @@ -0,0 +1,54 @@ +--- +id: nexla_sdk.resources.webhooks +title: nexla_sdk.resources.webhooks +slug: /api/python/modules/nexla_sdk/resources/webhooks +description: API for nexla_sdk.resources.webhooks +keywords: [Nexla, SDK, Python, API] +--- + +Resource for sending data to Nexla webhooks. + +## Classes + +### WebhooksResource + +Defined in `nexla_sdk/resources/webhooks.py:11` + +Resource for sending data to Nexla webhooks. + +Webhooks use API key authentication instead of session tokens. +The webhook URL is provided when you create a webhook source in Nexla. + +Examples: + # Initialize with API key + webhooks = WebhooksResource(api_key="your-api-key") + + # Send a single record + response = webhooks.send_one_record( + webhook_url="https://api.nexla.com/webhook/abc123", + record=\{"id": 1, "name": "test"\} + ) + + # Send multiple records + response = webhooks.send_many_records( + webhook_url="https://api.nexla.com/webhook/abc123", + records=[ + \{"id": 1, "name": "first"\}, + \{"id": 2, "name": "second"\} + ] + ) + +Note: + This resource operates independently of the NexlaClient as it uses + different authentication. You can also access it through the client + for convenience if you set the webhook API key. + +Methods: + +- `send_many_records(self, webhook_url: str, records: List[Dict[str, Any]], options: Optional[nexla_sdk.models.webhooks.requests.WebhookSendOptions] = None, auth_method: str = 'query') -> nexla_sdk.models.webhooks.responses.WebhookResponse` + - Source: `nexla_sdk/resources/webhooks.py:173` + - Send multiple records to a webhook. +- `send_one_record(self, webhook_url: str, record: Dict[str, Any], options: Optional[nexla_sdk.models.webhooks.requests.WebhookSendOptions] = None, auth_method: str = 'query') -> nexla_sdk.models.webhooks.responses.WebhookResponse` + - Source: `nexla_sdk/resources/webhooks.py:126` + - Send a single record to a webhook. + diff --git a/docs-site/docs/api/python/modules/nexla_sdk.telemetry.mdx b/docs-site/docs/api/python/modules/nexla_sdk.telemetry.mdx index 0f5e4f1..2f6ca4d 100644 --- a/docs-site/docs/api/python/modules/nexla_sdk.telemetry.mdx +++ b/docs-site/docs/api/python/modules/nexla_sdk.telemetry.mdx @@ -16,13 +16,13 @@ or OpenTelemetry isn't available, a no-op tracer is provided. ### `get_tracer(trace_enabled: bool)` -Source: `nexla_sdk/telemetry.py:54` +Source: `nexla_sdk/telemetry.py:58` Return an OpenTelemetry tracer if available and enabled, otherwise a no-op tracer. ### `is_tracing_configured() -> bool` -Source: `nexla_sdk/telemetry.py:79` +Source: `nexla_sdk/telemetry.py:84` Heuristically detect if OpenTelemetry tracing is configured globally. diff --git a/docs-site/scripts/gen_api_docs.py b/docs-site/scripts/gen_api_docs.py index bdf60ba..067896d 100644 --- a/docs-site/scripts/gen_api_docs.py +++ b/docs-site/scripts/gen_api_docs.py @@ -117,8 +117,30 @@ def format_signature(obj) -> str: def mdx_text(text: str) -> str: - """Escape generated prose so Python examples are treated as MDX text.""" - return text.replace("{", "\\{").replace("}", "\\}") + """Escape generated prose so Python examples are treated as MDX text. + + This intentionally includes indented docstring examples: Docusaurus MDX parses + braces in generated indented Python examples before Markdown code-block + handling, so raw dict literals like {"id": 1} can break the docs build. + """ + lines: List[str] = [] + in_fence = False + + for line in text.splitlines(): + if line.strip().startswith("```"): + in_fence = not in_fence + lines.append(line) + continue + if in_fence: + lines.append(line) + continue + + parts = line.split("`") + for index in range(0, len(parts), 2): + parts[index] = parts[index].replace("{", "\\{").replace("}", "\\}") + lines.append("`".join(parts)) + + return "\n".join(lines) def write_module_page( diff --git a/nexla_sdk/models/__init__.py b/nexla_sdk/models/__init__.py index 3ff2f19..ebbffe7 100644 --- a/nexla_sdk/models/__init__.py +++ b/nexla_sdk/models/__init__.py @@ -108,6 +108,8 @@ DashboardMetrics, MetricsByRunResponse, MetricsResponse, + ResourceFlowLogsResponse, + ResourceFlowMetricsResponse, ResourceMetricDaily, ResourceMetricsByRun, ) @@ -328,6 +330,8 @@ "ResourceMetricsByRun", "MetricsResponse", "MetricsByRunResponse", + "ResourceFlowMetricsResponse", + "ResourceFlowLogsResponse", # Code containers "CodeContainer", "CodeContainerCreate", diff --git a/nexla_sdk/models/flows/responses.py b/nexla_sdk/models/flows/responses.py index f7819a5..45176c6 100644 --- a/nexla_sdk/models/flows/responses.py +++ b/nexla_sdk/models/flows/responses.py @@ -26,11 +26,15 @@ class FlowLogEntry(BaseModel): """A single flow execution log entry.""" timestamp: Optional[datetime] = None - level: Optional[str] = None - message: Optional[str] = None - log: Optional[str] = None + level: Optional[str] = Field( + default=None, + validation_alias=AliasChoices("level", "severity"), + ) + message: Optional[str] = Field( + default=None, + validation_alias=AliasChoices("message", "log"), + ) log_type: Optional[str] = None - severity: Optional[str] = None resource_id: Optional[int] = None resource_type: Optional[str] = None run_id: Optional[int] = None @@ -40,27 +44,17 @@ class FlowLogEntry(BaseModel): @classmethod def coerce_ms_timestamp(cls, value): """Convert live API millisecond timestamps to datetimes explicitly.""" + # Unix epoch seconds will not reach 1e10 until year 2286; larger values are ms. if isinstance(value, (int, float)) and abs(value) > 1e10: return datetime.fromtimestamp(value / 1000, tz=timezone.utc) return value - @model_validator(mode="before") - @classmethod - def normalize_live_log_fields(cls, data): - """Map live API log fields onto the SDK's existing convenience names.""" - if not isinstance(data, dict): - return data - - normalized = data.copy() - if "message" not in normalized and "log" in normalized: - normalized["message"] = normalized["log"] - if "level" not in normalized and "severity" in normalized: - normalized["level"] = normalized["severity"] - return normalized - class FlowLogsMeta(BaseModel): - """Metadata for flow logs pagination and live run context.""" + """Metadata for flow logs pagination. + + The live API also returns run context fields (org_id, run_id) in logs.meta. + """ current_page: Optional[int] = Field( default=None, @@ -81,8 +75,8 @@ class FlowLogsMeta(BaseModel): validation_alias=AliasChoices("totalCount", "total_count"), serialization_alias="totalCount", ) - org_id: Optional[int] = None # present in live API logs.meta - run_id: Optional[int] = None # present in live API logs.meta + org_id: Optional[int] = None + run_id: Optional[int] = None class FlowLogsResponse(BaseModel): @@ -109,7 +103,8 @@ def normalize_live_logs_shape(cls, data): logs = data["logs"] normalized = data.copy() - normalized["logs"] = logs.get("data") or [] + logs_data = logs.get("data") + normalized["logs"] = logs_data if logs_data is not None else [] if normalized.get("meta") is None: # outer meta wins if already set normalized["meta"] = logs.get("meta") return normalized diff --git a/nexla_sdk/models/metrics/__init__.py b/nexla_sdk/models/metrics/__init__.py index 34561d9..fa6adf7 100644 --- a/nexla_sdk/models/metrics/__init__.py +++ b/nexla_sdk/models/metrics/__init__.py @@ -4,6 +4,8 @@ DashboardMetrics, MetricsByRunResponse, MetricsResponse, + ResourceFlowLogsResponse, + ResourceFlowMetricsResponse, ResourceMetricDaily, ResourceMetricsByRun, ) @@ -17,6 +19,8 @@ "DashboardMetrics", "MetricsResponse", "MetricsByRunResponse", + "ResourceFlowMetricsResponse", + "ResourceFlowLogsResponse", "ResourceMetricDaily", "ResourceMetricsByRun", ] diff --git a/nexla_sdk/models/metrics/responses.py b/nexla_sdk/models/metrics/responses.py index 96494e5..259d6ec 100644 --- a/nexla_sdk/models/metrics/responses.py +++ b/nexla_sdk/models/metrics/responses.py @@ -1,6 +1,7 @@ from typing import Any, Dict, List, Optional from nexla_sdk.models.base import BaseModel +from nexla_sdk.models.flows.responses import FlowLogsResponse, FlowMetricsApiResponse class AccountMetrics(BaseModel): @@ -58,3 +59,11 @@ class MetricsByRunResponse(BaseModel): status: int metrics: Dict[str, Any] # Contains data and meta + + +class ResourceFlowMetricsResponse(FlowMetricsApiResponse): + """Flow metrics response returned by MetricsResource.get_flow_metrics().""" + + +class ResourceFlowLogsResponse(FlowLogsResponse): + """Flow logs response returned by MetricsResource.get_flow_logs().""" diff --git a/nexla_sdk/resources/base_resource.py b/nexla_sdk/resources/base_resource.py index c1df5de..80ba9b8 100644 --- a/nexla_sdk/resources/base_resource.py +++ b/nexla_sdk/resources/base_resource.py @@ -7,7 +7,6 @@ AccessorResponse, AccessorResponseList, ) -from nexla_sdk.models.metrics.enums import ResourceType from nexla_sdk.utils.pagination import Paginator T = TypeVar("T") @@ -38,10 +37,6 @@ def _resolve_enum_value(enum_cls: Type[Enum], value: Any, param_name: str) -> st f"Invalid {param_name} {value!r}. Must be one of: {valid}" ) from None - def _resolve_resource_type(self, resource_type: Union[ResourceType, str]) -> str: - """Resolve a ResourceType or exact resource type string to the API path value.""" - return self._resolve_enum_value(ResourceType, resource_type, "resource_type") - def _make_request( self, method: str, diff --git a/nexla_sdk/resources/flows.py b/nexla_sdk/resources/flows.py index 8791584..fe8548c 100644 --- a/nexla_sdk/resources/flows.py +++ b/nexla_sdk/resources/flows.py @@ -1,3 +1,5 @@ +import logging +import warnings from typing import Any, Dict, List, Optional, Union from nexla_sdk.models.destinations.requests import DestinationUpdate @@ -13,6 +15,8 @@ from nexla_sdk.models.sources.requests import SourceUpdate from nexla_sdk.resources.base_resource import BaseResource +logger = logging.getLogger(__name__) + class FlowsResource(BaseResource): """Resource for managing data flows.""" @@ -101,7 +105,9 @@ def get_by_resource( Returns: Flow response """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) path = f"/{resource_type_value}/{resource_id}/flow" params = {"flows_only": 1} if flows_only else {} @@ -299,7 +305,9 @@ def delete_by_resource( Returns: Response status """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) path = f"/{resource_type_value}/{resource_id}/flow" return self._make_request("DELETE", path) @@ -322,7 +330,9 @@ def activate_by_resource( Returns: Activated flow """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) path = f"/{resource_type_value}/{resource_id}/activate" params = {} if all: @@ -352,7 +362,9 @@ def pause_by_resource( Returns: Paused flow """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) path = f"/{resource_type_value}/{resource_id}/pause" params = {} if all: @@ -486,10 +498,8 @@ def get_active_flows_metrics( def get_run_status( self, - flow_id: Optional[int] = None, - run_id: Optional[int] = None, - *deprecated_args: Any, - **deprecated_kwargs: Any, + flow_id: int, + run_id: int, ) -> Dict[str, Any]: """ Get status of a specific flow run. @@ -501,22 +511,21 @@ def get_run_status( Returns: Run status information """ - if ( - deprecated_args - or deprecated_kwargs - or isinstance(flow_id, (ResourceType, str)) - ): - raise DeprecationWarning( - "get_run_status(resource_type, resource_id, run_id) is no longer " - "supported. Use get_run_status(flow_id, run_id), which calls " - "/flows/{flow_id}/run_status/{run_id}." - ) - if flow_id is None or run_id is None: - raise TypeError("get_run_status() requires flow_id and run_id") + if not isinstance(flow_id, int) or not isinstance(run_id, int): + raise TypeError("get_run_status() requires integer flow_id and run_id") path = f"{self._path}/{flow_id}/run_status/{run_id}" return self._make_request("GET", path) + @staticmethod + def _warn_if_seconds_timestamp(value: int, param_name: str) -> None: + if isinstance(value, (int, float)) and 0 < abs(value) < 1e10: + warnings.warn( + f"{param_name} looks like seconds; API expects milliseconds", + RuntimeWarning, + stacklevel=3, + ) + def get_logs( self, resource_type: Union[ResourceType, str], @@ -543,7 +552,12 @@ def get_logs( FlowLogsResponse with log entries and pagination metadata, or raw dict if response doesn't match expected schema. """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) + self._warn_if_seconds_timestamp(from_ts, "from_ts") + if to_ts is not None: + self._warn_if_seconds_timestamp(to_ts, "to_ts") path = f"/{resource_type_value}/{resource_id}/flow/logs" params = { "run_id": run_id, @@ -558,7 +572,10 @@ def get_logs( response = self._make_request("GET", path, params=params) try: return FlowLogsResponse.model_validate(response) - except Exception: + except Exception as exc: + logger.debug( + "FlowLogsResponse validation failed, returning raw dict: %s", exc + ) return response def get_metrics( @@ -589,7 +606,9 @@ def get_metrics( FlowMetricsApiResponse with metrics data and pagination, or raw dict if response doesn't match expected schema. """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) path = f"/{resource_type_value}/{resource_id}/flow/metrics" params = {"from": from_date} if to_date: @@ -606,5 +625,8 @@ def get_metrics( response = self._make_request("GET", path, params=params) try: return FlowMetricsApiResponse.model_validate(response) - except Exception: + except Exception as exc: + logger.debug( + "FlowMetricsApiResponse validation failed, returning raw dict: %s", exc + ) return response diff --git a/nexla_sdk/resources/metrics.py b/nexla_sdk/resources/metrics.py index 31fa8cc..8cb9ceb 100644 --- a/nexla_sdk/resources/metrics.py +++ b/nexla_sdk/resources/metrics.py @@ -1,9 +1,27 @@ +import logging +import warnings from typing import Any, Dict, Optional, Union from nexla_sdk.models.metrics.enums import ResourceType -from nexla_sdk.models.metrics.responses import MetricsByRunResponse, MetricsResponse +from nexla_sdk.models.metrics.responses import ( + MetricsByRunResponse, + MetricsResponse, + ResourceFlowLogsResponse, + ResourceFlowMetricsResponse, +) from nexla_sdk.resources.base_resource import BaseResource +logger = logging.getLogger(__name__) + + +def _warn_if_seconds_timestamp(value: int, param_name: str) -> None: + if isinstance(value, (int, float)) and 0 < abs(value) < 1e10: + warnings.warn( + f"{param_name} looks like seconds; API expects milliseconds", + RuntimeWarning, + stacklevel=3, + ) + class MetricsResource(BaseResource): """ @@ -38,7 +56,9 @@ def get_resource_daily_metrics( Returns: Daily metrics """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) path = f"/{resource_type_value}/{resource_id}/metrics" params = {"from": from_date, "aggregate": 1} if to_date: @@ -71,7 +91,9 @@ def get_resource_metrics_by_run( Returns: Metrics by run """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) path = f"/{resource_type_value}/{resource_id}/metrics/run_summary" params = {} if groupby: @@ -114,7 +136,9 @@ def get_resource_flow_metrics( Returns: Flow metrics for the resource """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) if metric_type: path = f"/{resource_type_value}/{resource_id}/flow/{metric_type}" else: @@ -145,7 +169,7 @@ def get_flow_metrics( orderby: str = None, page: int = None, per_page: int = None, - ) -> Dict[str, Any]: + ) -> Union[ResourceFlowMetricsResponse, Dict[str, Any]]: """ Get flow metrics for a flow node keyed by resource ID. @@ -161,9 +185,12 @@ def get_flow_metrics( per_page: Items per page Returns: - Flow metrics for the resource + ResourceFlowMetricsResponse with metrics data and pagination, + or raw dict if response doesn't match expected schema. """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) path = f"/{resource_type_value}/{resource_id}/flow/metrics" params = {"from": from_date} if to_date: @@ -176,7 +203,15 @@ def get_flow_metrics( params["page"] = page if per_page is not None: params["per_page"] = per_page - return self._make_request("GET", path, params=params) + response = self._make_request("GET", path, params=params) + try: + return ResourceFlowMetricsResponse.model_validate(response) + except Exception as exc: + logger.debug( + "ResourceFlowMetricsResponse validation failed, returning raw dict: %s", + exc, + ) + return response def get_flow_logs( self, @@ -187,7 +222,7 @@ def get_flow_logs( to_ts: int = None, page: int = None, per_page: int = None, - ) -> Dict[str, Any]: + ) -> Union[ResourceFlowLogsResponse, Dict[str, Any]]: """ Get flow logs for a flow run keyed by resource ID. @@ -202,15 +237,28 @@ def get_flow_logs( per_page: Items per page Returns: - Flow logs for the resource run + ResourceFlowLogsResponse with log entries and pagination metadata, + or raw dict if response doesn't match expected schema. """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) path = f"/{resource_type_value}/{resource_id}/flow/logs" params = {"run_id": run_id, "from": from_ts} + _warn_if_seconds_timestamp(from_ts, "from_ts") if to_ts is not None: + _warn_if_seconds_timestamp(to_ts, "to_ts") params["to"] = to_ts if page is not None: params["page"] = page if per_page is not None: params["per_page"] = per_page - return self._make_request("GET", path, params=params) + response = self._make_request("GET", path, params=params) + try: + return ResourceFlowLogsResponse.model_validate(response) + except Exception as exc: + logger.debug( + "ResourceFlowLogsResponse validation failed, returning raw dict: %s", + exc, + ) + return response diff --git a/nexla_sdk/resources/organizations.py b/nexla_sdk/resources/organizations.py index a8af4b9..0a8e6ce 100644 --- a/nexla_sdk/resources/organizations.py +++ b/nexla_sdk/resources/organizations.py @@ -306,7 +306,9 @@ def get_resource_audit_log( Returns: List of audit log entries """ - resource_type_value = self._resolve_resource_type(resource_type) + resource_type_value = self._resolve_enum_value( + ResourceType, resource_type, "resource_type" + ) path = f"{self._path}/{org_id}/{resource_type_value}/audit_log" response = self._make_request("GET", path, params=params) return [LogEntry.model_validate(item) for item in response] diff --git a/tests/unit/test_flows.py b/tests/unit/test_flows.py index db37e3b..f7841eb 100644 --- a/tests/unit/test_flows.py +++ b/tests/unit/test_flows.py @@ -54,14 +54,31 @@ def test_flow_logs_response_model(self): assert response.meta.page_count == 1 assert response.meta.org_id == response_data["logs"]["meta"]["org_id"] assert response.meta.run_id == response_data["logs"]["meta"]["run_id"] - assert response.logs[0].log == response_data["logs"]["data"][0]["log"] - assert response.logs[0].message == response.logs[0].log - assert response.logs[0].level == response.logs[0].severity + assert response.logs[0].message == response_data["logs"]["data"][0]["log"] + assert response.logs[0].level == response_data["logs"]["data"][0]["severity"] + assert response.logs[0].run_id == response_data["logs"]["data"][0]["run_id"] + assert response.logs[0].details == response_data["logs"]["data"][0]["details"] raw_timestamp = response_data["logs"]["data"][0]["timestamp"] assert response.logs[0].timestamp == datetime.fromtimestamp( raw_timestamp / 1000, tz=timezone.utc ) + def test_flow_logs_response_model_accepts_seconds_timestamp(self): + """Test normal Unix-second timestamps are parsed as seconds.""" + response_data = MockResponseBuilder.flow_logs_response( + log_count=1, + logs={ + "data": [MockResponseBuilder.live_flow_log_entry(timestamp=1700000000)], + "meta": {"current_page": 1, "pages_count": 1, "total_count": 1}, + }, + ) + + response = FlowLogsResponse.model_validate(response_data) + + assert response.logs[0].timestamp == datetime.fromtimestamp( + 1700000000, tz=timezone.utc + ) + def test_flow_metrics_api_response_model(self): """Test FlowMetricsApiResponse model.""" response_data = MockResponseBuilder.flow_metrics_api_response() @@ -421,11 +438,18 @@ def test_get_run_status_rejects_deprecated_resource_signature( self, mock_client, mock_http_client ): """Test run status fails clearly for the old resource-based signature.""" - with pytest.raises(DeprecationWarning, match="get_run_status\\(resource_type"): + with pytest.raises(TypeError, match="positional argument"): mock_client.flows.get_run_status("data_sources", 5023, 123) assert mock_http_client.requests == [] + def test_get_run_status_rejects_string_flow_id(self, mock_client, mock_http_client): + """Test string flow IDs fail with a type-specific error.""" + with pytest.raises(TypeError, match="requires integer flow_id and run_id"): + mock_client.flows.get_run_status("599305", 123) + + assert mock_http_client.requests == [] + def test_flow_logs_and_metrics_accept_resource_type_enum( self, mock_client, mock_http_client ): @@ -439,7 +463,7 @@ def test_flow_logs_and_metrics_accept_resource_type_enum( ResourceType.DATA_SETS, 5061, run_id=100, - from_ts=1704067200, + from_ts=1704067200000, ) assert isinstance(logs, FlowLogsResponse) @@ -615,7 +639,7 @@ def test_get_logs_success(self, mock_client, mock_http_client): resource_type = "data_sources" resource_id = 5023 run_id = 12345 - from_ts = 1704067200 + from_ts = 1704067200000 mock_response = MockResponseBuilder.flow_logs_response(log_count=3) mock_http_client.add_response( f"/{resource_type}/{resource_id}/flow/logs", mock_response @@ -654,7 +678,7 @@ def test_get_logs_with_pagination(self, mock_client, mock_http_client): resource_type="data_sets", resource_id=5061, run_id=100, - from_ts=1704067200, + from_ts=1704067200000, page=2, per_page=25, ) @@ -664,6 +688,35 @@ def test_get_logs_with_pagination(self, mock_client, mock_http_client): assert last_request["params"]["page"] == 2 assert last_request["params"]["per_page"] == 25 + def test_get_logs_warns_for_seconds_timestamp(self, mock_client, mock_http_client): + """Test get_logs warns when timestamps look like seconds.""" + mock_response = MockResponseBuilder.flow_logs_response() + mock_http_client.add_response("/data_sources/5023/flow/logs", mock_response) + + with pytest.warns(RuntimeWarning, match="from_ts looks like seconds"): + mock_client.flows.get_logs( + resource_type="data_sources", + resource_id=5023, + run_id=12345, + from_ts=1700000000, + ) + + def test_get_logs_warns_for_seconds_to_timestamp( + self, mock_client, mock_http_client + ): + """Test get_logs warns when to_ts looks like seconds.""" + mock_response = MockResponseBuilder.flow_logs_response() + mock_http_client.add_response("/data_sources/5023/flow/logs", mock_response) + + with pytest.warns(RuntimeWarning, match="to_ts looks like seconds"): + mock_client.flows.get_logs( + resource_type="data_sources", + resource_id=5023, + run_id=12345, + from_ts=1700000000000, + to_ts=1700003600, + ) + def test_get_logs_all_parameters(self, mock_client, mock_http_client): """Test get_logs with all parameters.""" # Arrange @@ -675,8 +728,8 @@ def test_get_logs_all_parameters(self, mock_client, mock_http_client): resource_type="data_sinks", resource_id=5029, run_id=456, - from_ts=1704067200, - to_ts=1704153600, + from_ts=1704067200000, + to_ts=1704153600000, page=1, per_page=50, ) @@ -684,8 +737,8 @@ def test_get_logs_all_parameters(self, mock_client, mock_http_client): # Assert last_request = mock_http_client.get_last_request() assert last_request["params"]["run_id"] == 456 - assert last_request["params"]["from"] == 1704067200 - assert last_request["params"]["to"] == 1704153600 + assert last_request["params"]["from"] == 1704067200000 + assert last_request["params"]["to"] == 1704153600000 assert last_request["params"]["page"] == 1 assert last_request["params"]["per_page"] == 50 diff --git a/tests/unit/test_metrics.py b/tests/unit/test_metrics.py index 905f167..d8a17d1 100644 --- a/tests/unit/test_metrics.py +++ b/tests/unit/test_metrics.py @@ -2,7 +2,13 @@ from nexla_sdk import NexlaClient from nexla_sdk.models.metrics.enums import ResourceType, UserMetricResourceType -from nexla_sdk.models.metrics.responses import MetricsByRunResponse, MetricsResponse +from nexla_sdk.models.metrics.responses import ( + MetricsByRunResponse, + MetricsResponse, + ResourceFlowLogsResponse, + ResourceFlowMetricsResponse, +) +from tests.utils.mock_builders import MockResponseBuilder pytestmark = pytest.mark.unit @@ -67,8 +73,8 @@ def test_resource_metrics_rate_limits_and_flow_helpers( "data_sources", 1, run_id=123, - from_ts=1000, - to_ts=2000, + from_ts=1000000000000, + to_ts=2000000000000, page=1, per_page=100, ) @@ -104,7 +110,10 @@ def test_resource_flow_metrics_rejects_singular_resource_type( assert mock_http_client.requests == [] def test_flow_helpers_accept_resource_type_enum(self, client, mock_http_client): - mock_http_client.add_response("/data_sinks/44/flow/metrics", {"status": "ok"}) + mock_http_client.add_response( + "/data_sinks/44/flow/metrics", + MockResponseBuilder.flow_metrics_api_response(), + ) metrics = client.metrics.get_flow_metrics( ResourceType.DATA_SINKS, @@ -112,23 +121,53 @@ def test_flow_helpers_accept_resource_type_enum(self, client, mock_http_client): from_date="2024-01-01", ) - assert metrics["status"] == "ok" + assert isinstance(metrics, ResourceFlowMetricsResponse) + assert metrics.status == 200 mock_http_client.assert_request_made("GET", "/data_sinks/44/flow/metrics") mock_http_client.clear_requests() mock_http_client.clear_responses() - mock_http_client.add_response("/data_sources/45/flow/logs", {"status": "ok"}) + mock_http_client.add_response( + "/data_sources/45/flow/logs", + MockResponseBuilder.flow_logs_response(log_count=1), + ) logs = client.metrics.get_flow_logs( ResourceType.DATA_SOURCES, 45, run_id=123, - from_ts=1000, + from_ts=1000000000000, ) - assert logs["status"] == "ok" + assert isinstance(logs, ResourceFlowLogsResponse) + assert logs.status == 200 + assert len(logs.logs) == 1 mock_http_client.assert_request_made("GET", "/data_sources/45/flow/logs") + def test_flow_helpers_return_raw_dict_for_unmodeled_response( + self, client, mock_http_client + ): + mock_http_client.add_response("/data_sinks/44/flow/metrics", {"status": "ok"}) + + metrics = client.metrics.get_flow_metrics( + ResourceType.DATA_SINKS, + 44, + from_date="2024-01-01", + ) + + assert metrics == {"status": "ok"} + + def test_flow_logs_warn_for_seconds_timestamp(self, client, mock_http_client): + mock_http_client.add_response("/data_sources/45/flow/logs", {"status": "ok"}) + + with pytest.warns(RuntimeWarning, match="from_ts looks like seconds"): + client.metrics.get_flow_logs( + ResourceType.DATA_SOURCES, + 45, + run_id=123, + from_ts=1700000000, + ) + def test_user_daily_metrics_serializes_resource_type_enum( self, client, mock_http_client ): diff --git a/tests/utils/mock_builders.py b/tests/utils/mock_builders.py index bff6a17..6093a24 100644 --- a/tests/utils/mock_builders.py +++ b/tests/utils/mock_builders.py @@ -499,7 +499,24 @@ def webhook_send_response( @staticmethod def flow_log_entry(**overrides) -> Dict[str, Any]: - """Build a mock flow log entry.""" + """Build a mock flow log entry in the SDK model shape.""" + base = { + "timestamp": fake.date_time(tzinfo=timezone.utc).isoformat(), + "level": fake.random_element(["DEBUG", "INFO", "WARN", "ERROR"]), + "message": fake.sentence(), + "resource_id": fake.random_int(1, 10000), + "resource_type": fake.random_element( + ["data_sources", "data_sets", "data_sinks"] + ), + "run_id": fake.random_int(1, 10000), + "details": {"records": fake.random_int(0, 1000)}, + } + base.update(overrides) + return base + + @staticmethod + def live_flow_log_entry(**overrides) -> Dict[str, Any]: + """Build a mock flow log entry in the live API response shape.""" base = { "log": fake.sentence(), "log_type": fake.random_element(["LOG", "EVENT"]), @@ -507,6 +524,8 @@ def flow_log_entry(**overrides) -> Dict[str, Any]: "resource_id": fake.random_int(1, 10000), "resource_type": fake.random_element(["SOURCE", "DATASET", "SINK"]), "timestamp": fake.random_int(1700000000000, 1800000000000), + "run_id": fake.random_int(1, 10000), + "details": {"records": fake.random_int(0, 1000)}, } base.update(overrides) return base @@ -514,7 +533,7 @@ def flow_log_entry(**overrides) -> Dict[str, Any]: @staticmethod def flow_logs_response(log_count: int = 3, **overrides) -> Dict[str, Any]: """Build a mock flow logs response.""" - logs = [MockResponseBuilder.flow_log_entry() for _ in range(log_count)] + logs = [MockResponseBuilder.live_flow_log_entry() for _ in range(log_count)] base = { "status": 200, "message": "Ok",