Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.6.0
0.6.1
32 changes: 31 additions & 1 deletion fern/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
Expand Down Expand Up @@ -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."
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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."
Expand Down Expand Up @@ -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."
Expand Down Expand Up @@ -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."
Expand Down Expand Up @@ -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."
Expand Down
2 changes: 1 addition & 1 deletion src/arcmira/_package.py
Original file line number Diff line number Diff line change
@@ -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"
Expand Down
2 changes: 1 addition & 1 deletion src/arcmira/core/client_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()}",
Expand Down
4 changes: 4 additions & 0 deletions src/arcmira/types/channel_sponsors_response_access_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions src/arcmira/types/entity_momentum_response_access_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions src/arcmira/types/error_error_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions src/arcmira/types/transcript_response_access_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Loading