diff --git a/robosystems_client/api/connections/set_connection_write_policy.py b/robosystems_client/api/connections/set_connection_write_policy.py index 124b26a1..69e40e69 100644 --- a/robosystems_client/api/connections/set_connection_write_policy.py +++ b/robosystems_client/api/connections/set_connection_write_policy.py @@ -111,8 +111,8 @@ def sync_detailed( to QuickBooks when executed or at close. 'shadow' keeps QuickBooks the book of record and writes nothing to it: the close posts nothing locally either, its drafts become shadowed expectations compared with what QuickBooks holds, and its gates are recorded as findings. 'native' is not a - choice here: it is what disconnecting or severing leaves, books kept in RoboSystems with no - connection to write to. This is the explicit operator opt-in for writing to your books of record. + choice here: it is what severing leaves, books kept in RoboSystems with no connection to write to. + This is the explicit operator opt-in for writing to your books of record. Args: graph_id (str): @@ -157,8 +157,8 @@ def sync( to QuickBooks when executed or at close. 'shadow' keeps QuickBooks the book of record and writes nothing to it: the close posts nothing locally either, its drafts become shadowed expectations compared with what QuickBooks holds, and its gates are recorded as findings. 'native' is not a - choice here: it is what disconnecting or severing leaves, books kept in RoboSystems with no - connection to write to. This is the explicit operator opt-in for writing to your books of record. + choice here: it is what severing leaves, books kept in RoboSystems with no connection to write to. + This is the explicit operator opt-in for writing to your books of record. Args: graph_id (str): @@ -198,8 +198,8 @@ async def asyncio_detailed( to QuickBooks when executed or at close. 'shadow' keeps QuickBooks the book of record and writes nothing to it: the close posts nothing locally either, its drafts become shadowed expectations compared with what QuickBooks holds, and its gates are recorded as findings. 'native' is not a - choice here: it is what disconnecting or severing leaves, books kept in RoboSystems with no - connection to write to. This is the explicit operator opt-in for writing to your books of record. + choice here: it is what severing leaves, books kept in RoboSystems with no connection to write to. + This is the explicit operator opt-in for writing to your books of record. Args: graph_id (str): @@ -242,8 +242,8 @@ async def asyncio( to QuickBooks when executed or at close. 'shadow' keeps QuickBooks the book of record and writes nothing to it: the close posts nothing locally either, its drafts become shadowed expectations compared with what QuickBooks holds, and its gates are recorded as findings. 'native' is not a - choice here: it is what disconnecting or severing leaves, books kept in RoboSystems with no - connection to write to. This is the explicit operator opt-in for writing to your books of record. + choice here: it is what severing leaves, books kept in RoboSystems with no connection to write to. + This is the explicit operator opt-in for writing to your books of record. Args: graph_id (str): diff --git a/robosystems_client/api/robo_ledger_analytical_views/describe_filing.py b/robosystems_client/api/robo_ledger_analytical_views/describe_filing.py index d115c34a..4a1cdb7c 100644 --- a/robosystems_client/api/robo_ledger_analytical_views/describe_filing.py +++ b/robosystems_client/api/robo_ledger_analytical_views/describe_filing.py @@ -113,14 +113,14 @@ def sync_detailed( ) -> Response[ErrorResponse | OperationEnvelopeDescribeFilingResponse]: """Describe Filing - How one filing is laid out: entity, periods, statements and disclosures by role, axes, and its text - — the Items of a 10-K or 10-Q and its largest text blocks, each with the character offset `read- - text` pages from. On the SEC shared repository the filing is read from its public folder — its own - document, from any processed year — and a `ticker` picks it: the latest annual report, narrowed by - `fiscal_year` / `period_type`, or one `accession`, or with `form: 8-K` the latest earnings release - and its exhibits (`fiscal_year` is then the calendar year it was filed, and a CIK may stand in for - the ticker). SEC only: a ledger files no document, and its sections read through `disclosures` and - `information-block`. + How one filing is laid out: entity, periods, statements by role and notes by name, axes, and its + text — the Items of a 10-K or 10-Q and its largest text blocks, each with the character offset + `read-text` pages from. On the SEC shared repository the filing is read from its public folder — its + own document, from any processed year — and a `ticker` picks it: the latest annual report, narrowed + by `fiscal_year` / `period_type`, or one `accession`, or with `form: 8-K` the latest earnings + release and its exhibits (`fiscal_year` is then the calendar year it was filed, and a CIK may stand + in for the ticker). SEC only: a ledger files no document, and its sections read through + `disclosures` and `information-block`. **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict. @@ -161,14 +161,14 @@ def sync( ) -> ErrorResponse | OperationEnvelopeDescribeFilingResponse | None: """Describe Filing - How one filing is laid out: entity, periods, statements and disclosures by role, axes, and its text - — the Items of a 10-K or 10-Q and its largest text blocks, each with the character offset `read- - text` pages from. On the SEC shared repository the filing is read from its public folder — its own - document, from any processed year — and a `ticker` picks it: the latest annual report, narrowed by - `fiscal_year` / `period_type`, or one `accession`, or with `form: 8-K` the latest earnings release - and its exhibits (`fiscal_year` is then the calendar year it was filed, and a CIK may stand in for - the ticker). SEC only: a ledger files no document, and its sections read through `disclosures` and - `information-block`. + How one filing is laid out: entity, periods, statements by role and notes by name, axes, and its + text — the Items of a 10-K or 10-Q and its largest text blocks, each with the character offset + `read-text` pages from. On the SEC shared repository the filing is read from its public folder — its + own document, from any processed year — and a `ticker` picks it: the latest annual report, narrowed + by `fiscal_year` / `period_type`, or one `accession`, or with `form: 8-K` the latest earnings + release and its exhibits (`fiscal_year` is then the calendar year it was filed, and a CIK may stand + in for the ticker). SEC only: a ledger files no document, and its sections read through + `disclosures` and `information-block`. **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict. @@ -204,14 +204,14 @@ async def asyncio_detailed( ) -> Response[ErrorResponse | OperationEnvelopeDescribeFilingResponse]: """Describe Filing - How one filing is laid out: entity, periods, statements and disclosures by role, axes, and its text - — the Items of a 10-K or 10-Q and its largest text blocks, each with the character offset `read- - text` pages from. On the SEC shared repository the filing is read from its public folder — its own - document, from any processed year — and a `ticker` picks it: the latest annual report, narrowed by - `fiscal_year` / `period_type`, or one `accession`, or with `form: 8-K` the latest earnings release - and its exhibits (`fiscal_year` is then the calendar year it was filed, and a CIK may stand in for - the ticker). SEC only: a ledger files no document, and its sections read through `disclosures` and - `information-block`. + How one filing is laid out: entity, periods, statements by role and notes by name, axes, and its + text — the Items of a 10-K or 10-Q and its largest text blocks, each with the character offset + `read-text` pages from. On the SEC shared repository the filing is read from its public folder — its + own document, from any processed year — and a `ticker` picks it: the latest annual report, narrowed + by `fiscal_year` / `period_type`, or one `accession`, or with `form: 8-K` the latest earnings + release and its exhibits (`fiscal_year` is then the calendar year it was filed, and a CIK may stand + in for the ticker). SEC only: a ledger files no document, and its sections read through + `disclosures` and `information-block`. **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict. @@ -250,14 +250,14 @@ async def asyncio( ) -> ErrorResponse | OperationEnvelopeDescribeFilingResponse | None: """Describe Filing - How one filing is laid out: entity, periods, statements and disclosures by role, axes, and its text - — the Items of a 10-K or 10-Q and its largest text blocks, each with the character offset `read- - text` pages from. On the SEC shared repository the filing is read from its public folder — its own - document, from any processed year — and a `ticker` picks it: the latest annual report, narrowed by - `fiscal_year` / `period_type`, or one `accession`, or with `form: 8-K` the latest earnings release - and its exhibits (`fiscal_year` is then the calendar year it was filed, and a CIK may stand in for - the ticker). SEC only: a ledger files no document, and its sections read through `disclosures` and - `information-block`. + How one filing is laid out: entity, periods, statements by role and notes by name, axes, and its + text — the Items of a 10-K or 10-Q and its largest text blocks, each with the character offset + `read-text` pages from. On the SEC shared repository the filing is read from its public folder — its + own document, from any processed year — and a `ticker` picks it: the latest annual report, narrowed + by `fiscal_year` / `period_type`, or one `accession`, or with `form: 8-K` the latest earnings + release and its exhibits (`fiscal_year` is then the calendar year it was filed, and a CIK may stand + in for the ticker). SEC only: a ledger files no document, and its sections read through + `disclosures` and `information-block`. **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict. diff --git a/robosystems_client/api/robo_ledger_ledger_events/execute_event_block.py b/robosystems_client/api/robo_ledger_ledger_events/execute_event_block.py index 40eee223..3dca4e47 100644 --- a/robosystems_client/api/robo_ledger_ledger_events/execute_event_block.py +++ b/robosystems_client/api/robo_ledger_ledger_events/execute_event_block.py @@ -118,7 +118,7 @@ def sync_detailed( the QuickBooks ids per entry on event.metadata.qb_entry_ids and promotes the published entries to 'posted'; the event goes 'fulfilled' once no draft remains, or 'pending' on rejection (what landed is kept). Native-policy events fast-path through with no QB write — RoboSystems is the system of - record. + record. Only the group parent's books are QuickBooks': an event on a subsidiary's books is refused. **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict. @@ -175,7 +175,7 @@ def sync( the QuickBooks ids per entry on event.metadata.qb_entry_ids and promotes the published entries to 'posted'; the event goes 'fulfilled' once no draft remains, or 'pending' on rejection (what landed is kept). Native-policy events fast-path through with no QB write — RoboSystems is the system of - record. + record. Only the group parent's books are QuickBooks': an event on a subsidiary's books is refused. **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict. @@ -227,7 +227,7 @@ async def asyncio_detailed( the QuickBooks ids per entry on event.metadata.qb_entry_ids and promotes the published entries to 'posted'; the event goes 'fulfilled' once no draft remains, or 'pending' on rejection (what landed is kept). Native-policy events fast-path through with no QB write — RoboSystems is the system of - record. + record. Only the group parent's books are QuickBooks': an event on a subsidiary's books is refused. **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict. @@ -282,7 +282,7 @@ async def asyncio( the QuickBooks ids per entry on event.metadata.qb_entry_ids and promotes the published entries to 'posted'; the event goes 'fulfilled' once no draft remains, or 'pending' on rejection (what landed is kept). Native-policy events fast-path through with no QB write — RoboSystems is the system of - record. + record. Only the group parent's books are QuickBooks': an event on a subsidiary's books is refused. **Idempotency**: supply an `Idempotency-Key` header to make safe retries; replays within 24 hours return the same envelope. Reusing the key with a different body returns HTTP 409 Conflict. diff --git a/robosystems_client/api/subscriptions/end_repository_subscription_trial.py b/robosystems_client/api/subscriptions/end_repository_subscription_trial.py new file mode 100644 index 00000000..fa420d22 --- /dev/null +++ b/robosystems_client/api/subscriptions/end_repository_subscription_trial.py @@ -0,0 +1,208 @@ +from http import HTTPStatus +from typing import Any +from urllib.parse import quote + +import httpx + +from ... import errors +from ...client import AuthenticatedClient, Client +from ...models.error_response import ErrorResponse +from ...models.graph_subscription_response import GraphSubscriptionResponse +from ...models.http_validation_error import HTTPValidationError +from ...types import Response + + +def _get_kwargs( + graph_id: str, +) -> dict[str, Any]: + + _kwargs: dict[str, Any] = { + "method": "post", + "url": "/v1/graphs/{graph_id}/subscriptions/end-trial".format( + graph_id=quote(str(graph_id), safe=""), + ), + } + + return _kwargs + + +def _parse_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> ErrorResponse | GraphSubscriptionResponse | HTTPValidationError | None: + if response.status_code == 200: + response_200 = GraphSubscriptionResponse.from_dict(response.json()) + + return response_200 + + if response.status_code == 400: + response_400 = ErrorResponse.from_dict(response.json()) + + return response_400 + + if response.status_code == 401: + response_401 = ErrorResponse.from_dict(response.json()) + + return response_401 + + if response.status_code == 403: + response_403 = ErrorResponse.from_dict(response.json()) + + return response_403 + + if response.status_code == 404: + response_404 = ErrorResponse.from_dict(response.json()) + + return response_404 + + if response.status_code == 422: + response_422 = HTTPValidationError.from_dict(response.json()) + + return response_422 + + if response.status_code == 429: + response_429 = ErrorResponse.from_dict(response.json()) + + return response_429 + + if response.status_code == 500: + response_500 = ErrorResponse.from_dict(response.json()) + + return response_500 + + if client.raise_on_unexpected_status: + raise errors.UnexpectedStatus(response.status_code, response.content) + else: + return None + + +def _build_response( + *, client: AuthenticatedClient | Client, response: httpx.Response +) -> Response[ErrorResponse | GraphSubscriptionResponse | HTTPValidationError]: + return Response( + status_code=HTTPStatus(response.status_code), + content=response.content, + headers=response.headers, + parsed=_parse_response(client=client, response=response), + ) + + +def sync_detailed( + graph_id: str, + *, + client: AuthenticatedClient, +) -> Response[ErrorResponse | GraphSubscriptionResponse | HTTPValidationError]: + """End Repository Trial + + End your free trial of a shared repository now and start the paid plan. The first period is charged + to the payment method on file; raw queries, the AI analyst and the plan's credits open once the + payment clears, usually within a minute. Returns 400 when the subscription is not on a trial. + + Args: + graph_id (str): Repository name (e.g., 'sec') + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[ErrorResponse | GraphSubscriptionResponse | HTTPValidationError] + """ + + kwargs = _get_kwargs( + graph_id=graph_id, + ) + + response = client.get_httpx_client().request( + **kwargs, + ) + + return _build_response(client=client, response=response) + + +def sync( + graph_id: str, + *, + client: AuthenticatedClient, +) -> ErrorResponse | GraphSubscriptionResponse | HTTPValidationError | None: + """End Repository Trial + + End your free trial of a shared repository now and start the paid plan. The first period is charged + to the payment method on file; raw queries, the AI analyst and the plan's credits open once the + payment clears, usually within a minute. Returns 400 when the subscription is not on a trial. + + Args: + graph_id (str): Repository name (e.g., 'sec') + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + ErrorResponse | GraphSubscriptionResponse | HTTPValidationError + """ + + return sync_detailed( + graph_id=graph_id, + client=client, + ).parsed + + +async def asyncio_detailed( + graph_id: str, + *, + client: AuthenticatedClient, +) -> Response[ErrorResponse | GraphSubscriptionResponse | HTTPValidationError]: + """End Repository Trial + + End your free trial of a shared repository now and start the paid plan. The first period is charged + to the payment method on file; raw queries, the AI analyst and the plan's credits open once the + payment clears, usually within a minute. Returns 400 when the subscription is not on a trial. + + Args: + graph_id (str): Repository name (e.g., 'sec') + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + Response[ErrorResponse | GraphSubscriptionResponse | HTTPValidationError] + """ + + kwargs = _get_kwargs( + graph_id=graph_id, + ) + + response = await client.get_async_httpx_client().request(**kwargs) + + return _build_response(client=client, response=response) + + +async def asyncio( + graph_id: str, + *, + client: AuthenticatedClient, +) -> ErrorResponse | GraphSubscriptionResponse | HTTPValidationError | None: + """End Repository Trial + + End your free trial of a shared repository now and start the paid plan. The first period is charged + to the payment method on file; raw queries, the AI analyst and the plan's credits open once the + payment clears, usually within a minute. Returns 400 when the subscription is not on a trial. + + Args: + graph_id (str): Repository name (e.g., 'sec') + + Raises: + errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. + httpx.TimeoutException: If the request takes longer than Client.timeout. + + Returns: + ErrorResponse | GraphSubscriptionResponse | HTTPValidationError + """ + + return ( + await asyncio_detailed( + graph_id=graph_id, + client=client, + ) + ).parsed diff --git a/robosystems_client/models/accept_suggestion_line.py b/robosystems_client/models/accept_suggestion_line.py index 8eac87e8..38b4398b 100644 --- a/robosystems_client/models/accept_suggestion_line.py +++ b/robosystems_client/models/accept_suggestion_line.py @@ -21,9 +21,11 @@ class AcceptSuggestionLine: outcome (AcceptSuggestionLineOutcome): What happened to it. reason (None | str | Unset): Why a skipped line was not taken: `not_open` (already classified, posted or retracted), `no_suggestion` (nothing to take, or a name that matches no account), `source_changed` (the feed - changed it after capture), `suggestion_changed` (a line taken earlier in the batch moved the counterparty's - default, so this one's suggestion is not the one selected; review it again), `closed_period`, `locked` (another - process holds it; retry), or `refused` (the handler would not post the choice). + changed it after capture), `needs_review` (the suggestion carries a caution, such as an amount far above the + counterparty's usual; classify the line on its own), `suggestion_changed` (a line taken earlier in the batch + moved the counterparty's default, so this one's suggestion is not the one selected; review it again), + `closed_period`, `locked` (another process holds it; retry), or `refused` (the handler would not post the + choice). detail (None | str | Unset): The refusal's own words, when there was one. element_id (None | str | Unset): The account the suggestion names. description (None | str | Unset): The line's description. diff --git a/robosystems_client/models/connection_response.py b/robosystems_client/models/connection_response.py index 1507314e..1c4ffe7f 100644 --- a/robosystems_client/models/connection_response.py +++ b/robosystems_client/models/connection_response.py @@ -31,9 +31,10 @@ class ConnectionResponse: external source, whose events name their own. updated_at (datetime.datetime | None | str | Unset): Last update timestamp last_sync (datetime.datetime | None | str | Unset): Last sync timestamp - write_policy (None | str | Unset): Source-of-truth write policy: 'native' (RoboSystems is authoritative; no - outbound write-back) or 'qb_authoritative' (QuickBooks is authoritative; RoboSystems-originated entries publish - to QB). Set via the write-policy endpoint. + write_policy (None | str | Unset): Outbound write policy: 'qb_authoritative' (QuickBooks is the book of record + and RoboSystems-originated entries publish to it at close), 'shadow' (QuickBooks is the book of record, nothing + is written to it and the close posts nothing locally), or 'native' (no external ledger; what severing leaves). + Set via the write-policy endpoint. source_name (None | str | Unset): External-provider registered source slug — the value the integration stamps on the events it emits. Null for platform providers. """ diff --git a/robosystems_client/models/graph_subscription_response.py b/robosystems_client/models/graph_subscription_response.py index e993bc83..8ccae461 100644 --- a/robosystems_client/models/graph_subscription_response.py +++ b/robosystems_client/models/graph_subscription_response.py @@ -31,6 +31,8 @@ class GraphSubscriptionResponse: current_period_end (None | str | Unset): Current billing period end started_at (None | str | Unset): Subscription start date canceled_at (None | str | Unset): Cancellation date + trial_ends_at (None | str | Unset): When the free trial ends and the first charge is made. Null for a + subscription that opened without a trial; kept after the trial is over. ends_at (None | str | Unset): Subscription end date (when access will be revoked, especially relevant for cancelled subscriptions) operation_id (None | str | Unset): Operation ID for tracking async tier changes via SSE @@ -50,6 +52,7 @@ class GraphSubscriptionResponse: current_period_end: None | str | Unset = UNSET started_at: None | str | Unset = UNSET canceled_at: None | str | Unset = UNSET + trial_ends_at: None | str | Unset = UNSET ends_at: None | str | Unset = UNSET operation_id: None | str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -103,6 +106,12 @@ def to_dict(self) -> dict[str, Any]: else: canceled_at = self.canceled_at + trial_ends_at: None | str | Unset + if isinstance(self.trial_ends_at, Unset): + trial_ends_at = UNSET + else: + trial_ends_at = self.trial_ends_at + ends_at: None | str | Unset if isinstance(self.ends_at, Unset): ends_at = UNSET @@ -140,6 +149,8 @@ def to_dict(self) -> dict[str, Any]: field_dict["started_at"] = started_at if canceled_at is not UNSET: field_dict["canceled_at"] = canceled_at + if trial_ends_at is not UNSET: + field_dict["trial_ends_at"] = trial_ends_at if ends_at is not UNSET: field_dict["ends_at"] = ends_at if operation_id is not UNSET: @@ -215,6 +226,15 @@ def _parse_canceled_at(data: object) -> None | str | Unset: canceled_at = _parse_canceled_at(d.pop("canceled_at", UNSET)) + def _parse_trial_ends_at(data: object) -> None | str | Unset: + if data is None: + return data + if isinstance(data, Unset): + return data + return cast(None | str | Unset, data) + + trial_ends_at = _parse_trial_ends_at(d.pop("trial_ends_at", UNSET)) + def _parse_ends_at(data: object) -> None | str | Unset: if data is None: return data @@ -248,6 +268,7 @@ def _parse_operation_id(data: object) -> None | str | Unset: current_period_end=current_period_end, started_at=started_at, canceled_at=canceled_at, + trial_ends_at=trial_ends_at, ends_at=ends_at, operation_id=operation_id, ) diff --git a/robosystems_client/models/repository_info.py b/robosystems_client/models/repository_info.py index 04824103..8fff0308 100644 --- a/robosystems_client/models/repository_info.py +++ b/robosystems_client/models/repository_info.py @@ -6,6 +6,8 @@ from attrs import define as _attrs_define from attrs import field as _attrs_field +from ..types import UNSET, Unset + if TYPE_CHECKING: from ..models.offering_repository_plan import OfferingRepositoryPlan @@ -24,6 +26,8 @@ class RepositoryInfo: enabled (bool): Whether repository is enabled coming_soon (bool): Whether repository is coming soon plans (list[OfferingRepositoryPlan]): Available plans + trial_days (int | Unset): Length in days of the free trial a first subscription opens with; 0 when the + repository offers none Default: 0. """ type_: str @@ -32,6 +36,7 @@ class RepositoryInfo: enabled: bool coming_soon: bool plans: list[OfferingRepositoryPlan] + trial_days: int | Unset = 0 additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -50,6 +55,8 @@ def to_dict(self) -> dict[str, Any]: plans_item = plans_item_data.to_dict() plans.append(plans_item) + trial_days = self.trial_days + field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update( @@ -62,6 +69,8 @@ def to_dict(self) -> dict[str, Any]: "plans": plans, } ) + if trial_days is not UNSET: + field_dict["trial_days"] = trial_days return field_dict @@ -87,6 +96,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: plans.append(plans_item) + trial_days = d.pop("trial_days", UNSET) + repository_info = cls( type_=type_, name=name, @@ -94,6 +105,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: enabled=enabled, coming_soon=coming_soon, plans=plans, + trial_days=trial_days, ) repository_info.additional_properties = d diff --git a/robosystems_client/models/set_write_policy_request.py b/robosystems_client/models/set_write_policy_request.py index 04302043..52c7da76 100644 --- a/robosystems_client/models/set_write_policy_request.py +++ b/robosystems_client/models/set_write_policy_request.py @@ -24,8 +24,7 @@ class SetWritePolicyRequest: write_policy (SetWritePolicyRequestWritePolicy): 'qb_authoritative' = QuickBooks authoritative, entries publish to QB; 'shadow' = QuickBooks authoritative and RoboSystems only observes: nothing is written to QuickBooks, the close posts nothing locally, its drafts become shadowed expectations and its gates are findings. 'native', books - kept in RoboSystems with no write-back, is what disconnecting or severing leaves, not a choice for a live - connection. + kept in RoboSystems with no write-back, is what severing leaves, not a choice for a live connection. """ write_policy: SetWritePolicyRequestWritePolicy