diff --git a/CHANGELOG.md b/CHANGELOG.md index 0862cb1..8ed17d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.6.1 + +Generated from the API document of 2026-10-15. + +- Error and access details expose the optional `url` field for Terms of Service responses. +- The API document includes the current Terms error codes and clarifies that the remaining rate limit is an estimate. +- Published from the current public source history with a matching release tag. + ## 0.6.0 Generated from the API document of 2026-10-12, after the clear-language release (arcmira/mcp 0.10.7). One field set is removed, so it is a minor bump while the package is 0.x. diff --git a/VERSION b/VERSION index a918a2a..ee6cdce 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.6.0 +0.6.1 diff --git a/fern/openapi.json b/fern/openapi.json index 9e5792e..1deee3f 100644 --- a/fern/openapi.json +++ b/fern/openapi.json @@ -42,7 +42,7 @@ } }, "RateLimit-Remaining": { - "description": "Requests left in the current window.", + "description": "An estimate of the requests left in the current window. Limits are counted at each Cloudflare location, so it can read high; a 429 is the final word.", "schema": { "type": "integer" } @@ -332,6 +332,10 @@ }, "limit": { "$ref": "#/components/schemas/Limit" + }, + "url": { + "type": "string", + "description": "On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page." } }, "description": "Machine data the refusal carries for you to act on. Present only on the codes that name a field here." @@ -615,6 +619,16 @@ "type": "invalid_request_error", "description": "team_id is retired: a monitor belongs to the account the key acts in. Omit team_id or send null." }, + { + "code": "terms_acceptance_required", + "type": "permission_error", + "description": "The person the key or token acts for has not accepted the updated Terms of Service. details.url is the page where they accept; the key or token works again as soon as they do." + }, + { + "code": "terms_updated", + "type": "permission_error", + "description": "The Terms of Service changed since the person the key or token acts for last accepted them. This call was not run. Continuing to use the API accepts the updated terms, so the same call succeeds when sent again. details.url is the terms page. Sent once per person." + }, { "code": "tracker_create_retired", "type": "invalid_request_error", @@ -3433,6 +3447,10 @@ }, "limit": { "$ref": "#/components/schemas/Limit" + }, + "url": { + "type": "string", + "description": "On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page." } }, "description": "Machine data the refusal carries for you to act on. Present only on the codes that name a field here." @@ -3767,6 +3785,10 @@ }, "limit": { "$ref": "#/components/schemas/Limit" + }, + "url": { + "type": "string", + "description": "On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page." } }, "description": "Machine data the refusal carries for you to act on. Present only on the codes that name a field here." @@ -4308,6 +4330,10 @@ }, "limit": { "$ref": "#/components/schemas/Limit" + }, + "url": { + "type": "string", + "description": "On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page." } }, "description": "Machine data the refusal carries for you to act on. Present only on the codes that name a field here." @@ -6352,6 +6378,10 @@ }, "limit": { "$ref": "#/components/schemas/Limit" + }, + "url": { + "type": "string", + "description": "On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page." } }, "description": "Machine data the refusal carries for you to act on. Present only on the codes that name a field here." diff --git a/src/arcmira/_package.py b/src/arcmira/_package.py index e3369df..6262c42 100644 --- a/src/arcmira/_package.py +++ b/src/arcmira/_package.py @@ -1,5 +1,5 @@ # Written by scripts/install-generated.py from VERSION. -__version__ = '0.6.0' +__version__ = '0.6.1' homepage = "https://arcmira.com" docs = "https://arcmira.com/docs" api_base = "https://api.arcmira.com/v1" diff --git a/src/arcmira/core/client_wrapper.py b/src/arcmira/core/client_wrapper.py index 7112051..d487135 100644 --- a/src/arcmira/core/client_wrapper.py +++ b/src/arcmira/core/client_wrapper.py @@ -33,7 +33,7 @@ def get_headers(self) -> typing.Dict[str, str]: import platform headers: typing.Dict[str, str] = { - "User-Agent": "arcmira/0.6.0", + "User-Agent": "arcmira/0.6.1", "X-Fern-Language": "Python", "X-Fern-Runtime": f"python/{platform.python_version()}", "X-Fern-Platform": f"{platform.system().lower()}/{platform.release()}", diff --git a/src/arcmira/types/channel_sponsors_response_access_details.py b/src/arcmira/types/channel_sponsors_response_access_details.py index 170dda4..2a1e417 100644 --- a/src/arcmira/types/channel_sponsors_response_access_details.py +++ b/src/arcmira/types/channel_sponsors_response_access_details.py @@ -15,6 +15,10 @@ class ChannelSponsorsResponseAccessDetails(UniversalBaseModel): quote: typing.Optional[RefusedQuote] = None limit: typing.Optional[Limit] = None + url: typing.Optional[str] = pydantic.Field(default=None) + """ + On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page. + """ if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/arcmira/types/entity_momentum_response_access_details.py b/src/arcmira/types/entity_momentum_response_access_details.py index 2c81777..4d9da72 100644 --- a/src/arcmira/types/entity_momentum_response_access_details.py +++ b/src/arcmira/types/entity_momentum_response_access_details.py @@ -15,6 +15,10 @@ class EntityMomentumResponseAccessDetails(UniversalBaseModel): quote: typing.Optional[RefusedQuote] = None limit: typing.Optional[Limit] = None + url: typing.Optional[str] = pydantic.Field(default=None) + """ + On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page. + """ if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/arcmira/types/error_error_details.py b/src/arcmira/types/error_error_details.py index 06db73d..b2f86bf 100644 --- a/src/arcmira/types/error_error_details.py +++ b/src/arcmira/types/error_error_details.py @@ -15,6 +15,10 @@ class ErrorErrorDetails(UniversalBaseModel): quote: typing.Optional[RefusedQuote] = None limit: typing.Optional[Limit] = None + url: typing.Optional[str] = pydantic.Field(default=None) + """ + On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page. + """ if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/arcmira/types/transcript_response_access_details.py b/src/arcmira/types/transcript_response_access_details.py index a835edd..1c69e3e 100644 --- a/src/arcmira/types/transcript_response_access_details.py +++ b/src/arcmira/types/transcript_response_access_details.py @@ -15,6 +15,10 @@ class TranscriptResponseAccessDetails(UniversalBaseModel): quote: typing.Optional[RefusedQuote] = None limit: typing.Optional[Limit] = None + url: typing.Optional[str] = pydantic.Field(default=None) + """ + On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page. + """ if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2 diff --git a/src/arcmira/types/transcript_search_response_access_details.py b/src/arcmira/types/transcript_search_response_access_details.py index 9f1c52f..7a59b8f 100644 --- a/src/arcmira/types/transcript_search_response_access_details.py +++ b/src/arcmira/types/transcript_search_response_access_details.py @@ -15,6 +15,10 @@ class TranscriptSearchResponseAccessDetails(UniversalBaseModel): quote: typing.Optional[RefusedQuote] = None limit: typing.Optional[Limit] = None + url: typing.Optional[str] = pydantic.Field(default=None) + """ + On terms_acceptance_required: the page where the person accepts the updated Terms of Service. On terms_updated: the Terms of Service page. + """ if IS_PYDANTIC_V2: model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2