Skip to content
Open
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
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
permissions:
contents: read
id-token: write
runs-on: ${{ github.repository == 'stainless-sdks/agentmail-go' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: |-
github.repository == 'stainless-sdks/agentmail-go' &&
(github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')
Expand Down Expand Up @@ -49,7 +49,7 @@ jobs:
lint:
timeout-minutes: 10
name: lint
runs-on: ${{ github.repository == 'stainless-sdks/agentmail-go' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork

steps:
Expand All @@ -65,7 +65,7 @@ jobs:
test:
timeout-minutes: 10
name: test
runs-on: ${{ github.repository == 'stainless-sdks/agentmail-go' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.16.0"
".": "0.17.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 95
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/agentmail/agentmail-710dd939e94b2dbb7a2d7ffae0f5dbc6bab5893c201299f452fcf39e7dbd886c.yml
openapi_spec_hash: 4eb49916915aeac5a7897470322459d4
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/agentmail/agentmail-0507cda65e473e78bdde89c5ac0c3476a26e5d5f23d9650ea364ead0b876e2c0.yml
openapi_spec_hash: 714305157eba3e25f840eac5d04236a3
config_hash: 8c7283a75ec714092fa5f03087e28a65
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Changelog

## 0.17.0 (2026-07-28)

Full Changelog: [v0.16.0...v0.17.0](https://github.com/agentmail-to/agentmail-go/compare/v0.16.0...v0.17.0)

### Features

* **api:** api update ([8c43c1d](https://github.com/agentmail-to/agentmail-go/commit/8c43c1d7ecf3b99a1cf57c71278e72b3673e4438))
* **api:** api update ([fec001a](https://github.com/agentmail-to/agentmail-go/commit/fec001a5f8daa206da829ef87fb907afc70bdf23))
* **stlc:** configurable CI runner and private-production-repo support in workflow templates ([32ee657](https://github.com/agentmail-to/agentmail-go/commit/32ee657b22d1873ac8b166a45ac4d498229741e3))

## 0.16.0 (2026-07-15)

Full Changelog: [v0.15.0...v0.16.0](https://github.com/agentmail-to/agentmail-go/compare/v0.15.0...v0.16.0)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Or to pin the version:
<!-- x-release-please-start-version -->

```sh
go get -u 'github.com/agentmail-to/agentmail-go@v0.16.0'
go get -u 'github.com/agentmail-to/agentmail-go@v0.17.0'
```

<!-- x-release-please-end -->
Expand Down
192 changes: 100 additions & 92 deletions apikey.go
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ type APIKeyNewResponsePermissions struct {
APIKeyDelete bool `json:"api_key_delete" api:"nullable"`
// Read API keys.
APIKeyRead bool `json:"api_key_read" api:"nullable"`
// Update API keys.
APIKeyUpdate bool `json:"api_key_update" api:"nullable"`
// Create domains.
DomainCreate bool `json:"domain_create" api:"nullable"`
// Delete domains.
Expand Down Expand Up @@ -162,17 +164,21 @@ type APIKeyNewResponsePermissions struct {
LabelSpamRead bool `json:"label_spam_read" api:"nullable"`
// Access messages labeled trash.
LabelTrashRead bool `json:"label_trash_read" api:"nullable"`
// Access messages labeled unauthenticated.
LabelUnauthenticatedRead bool `json:"label_unauthenticated_read" api:"nullable"`
// Create list entries.
ListEntryCreate bool `json:"list_entry_create" api:"nullable"`
// Delete list entries.
ListEntryDelete bool `json:"list_entry_delete" api:"nullable"`
// Read list entries.
ListEntryRead bool `json:"list_entry_read" api:"nullable"`
// Read messages.
// Delete messages. Also required to delete threads.
MessageDelete bool `json:"message_delete" api:"nullable"`
// Read messages. Also required to read threads.
MessageRead bool `json:"message_read" api:"nullable"`
// Send messages.
MessageSend bool `json:"message_send" api:"nullable"`
// Update message labels.
// Update message labels. Also required to update threads.
MessageUpdate bool `json:"message_update" api:"nullable"`
// Read metrics.
MetricsRead bool `json:"metrics_read" api:"nullable"`
Expand All @@ -182,10 +188,6 @@ type APIKeyNewResponsePermissions struct {
PodDelete bool `json:"pod_delete" api:"nullable"`
// Read pods.
PodRead bool `json:"pod_read" api:"nullable"`
// Delete threads.
ThreadDelete bool `json:"thread_delete" api:"nullable"`
// Read threads.
ThreadRead bool `json:"thread_read" api:"nullable"`
// Create webhooks.
WebhookCreate bool `json:"webhook_create" api:"nullable"`
// Delete webhooks.
Expand All @@ -196,43 +198,44 @@ type APIKeyNewResponsePermissions struct {
WebhookUpdate bool `json:"webhook_update" api:"nullable"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
APIKeyCreate respjson.Field
APIKeyDelete respjson.Field
APIKeyRead respjson.Field
DomainCreate respjson.Field
DomainDelete respjson.Field
DomainRead respjson.Field
DomainUpdate respjson.Field
DraftCreate respjson.Field
DraftDelete respjson.Field
DraftRead respjson.Field
DraftSend respjson.Field
DraftUpdate respjson.Field
InboxCreate respjson.Field
InboxDelete respjson.Field
InboxRead respjson.Field
InboxUpdate respjson.Field
LabelBlockedRead respjson.Field
LabelSpamRead respjson.Field
LabelTrashRead respjson.Field
ListEntryCreate respjson.Field
ListEntryDelete respjson.Field
ListEntryRead respjson.Field
MessageRead respjson.Field
MessageSend respjson.Field
MessageUpdate respjson.Field
MetricsRead respjson.Field
PodCreate respjson.Field
PodDelete respjson.Field
PodRead respjson.Field
ThreadDelete respjson.Field
ThreadRead respjson.Field
WebhookCreate respjson.Field
WebhookDelete respjson.Field
WebhookRead respjson.Field
WebhookUpdate respjson.Field
ExtraFields map[string]respjson.Field
raw string
APIKeyCreate respjson.Field
APIKeyDelete respjson.Field
APIKeyRead respjson.Field
APIKeyUpdate respjson.Field
DomainCreate respjson.Field
DomainDelete respjson.Field
DomainRead respjson.Field
DomainUpdate respjson.Field
DraftCreate respjson.Field
DraftDelete respjson.Field
DraftRead respjson.Field
DraftSend respjson.Field
DraftUpdate respjson.Field
InboxCreate respjson.Field
InboxDelete respjson.Field
InboxRead respjson.Field
InboxUpdate respjson.Field
LabelBlockedRead respjson.Field
LabelSpamRead respjson.Field
LabelTrashRead respjson.Field
LabelUnauthenticatedRead respjson.Field
ListEntryCreate respjson.Field
ListEntryDelete respjson.Field
ListEntryRead respjson.Field
MessageDelete respjson.Field
MessageRead respjson.Field
MessageSend respjson.Field
MessageUpdate respjson.Field
MetricsRead respjson.Field
PodCreate respjson.Field
PodDelete respjson.Field
PodRead respjson.Field
WebhookCreate respjson.Field
WebhookDelete respjson.Field
WebhookRead respjson.Field
WebhookUpdate respjson.Field
ExtraFields map[string]respjson.Field
raw string
} `json:"-"`
}

Expand Down Expand Up @@ -315,6 +318,8 @@ type APIKeyListResponseAPIKeyPermissions struct {
APIKeyDelete bool `json:"api_key_delete" api:"nullable"`
// Read API keys.
APIKeyRead bool `json:"api_key_read" api:"nullable"`
// Update API keys.
APIKeyUpdate bool `json:"api_key_update" api:"nullable"`
// Create domains.
DomainCreate bool `json:"domain_create" api:"nullable"`
// Delete domains.
Expand Down Expand Up @@ -347,17 +352,21 @@ type APIKeyListResponseAPIKeyPermissions struct {
LabelSpamRead bool `json:"label_spam_read" api:"nullable"`
// Access messages labeled trash.
LabelTrashRead bool `json:"label_trash_read" api:"nullable"`
// Access messages labeled unauthenticated.
LabelUnauthenticatedRead bool `json:"label_unauthenticated_read" api:"nullable"`
// Create list entries.
ListEntryCreate bool `json:"list_entry_create" api:"nullable"`
// Delete list entries.
ListEntryDelete bool `json:"list_entry_delete" api:"nullable"`
// Read list entries.
ListEntryRead bool `json:"list_entry_read" api:"nullable"`
// Read messages.
// Delete messages. Also required to delete threads.
MessageDelete bool `json:"message_delete" api:"nullable"`
// Read messages. Also required to read threads.
MessageRead bool `json:"message_read" api:"nullable"`
// Send messages.
MessageSend bool `json:"message_send" api:"nullable"`
// Update message labels.
// Update message labels. Also required to update threads.
MessageUpdate bool `json:"message_update" api:"nullable"`
// Read metrics.
MetricsRead bool `json:"metrics_read" api:"nullable"`
Expand All @@ -367,10 +376,6 @@ type APIKeyListResponseAPIKeyPermissions struct {
PodDelete bool `json:"pod_delete" api:"nullable"`
// Read pods.
PodRead bool `json:"pod_read" api:"nullable"`
// Delete threads.
ThreadDelete bool `json:"thread_delete" api:"nullable"`
// Read threads.
ThreadRead bool `json:"thread_read" api:"nullable"`
// Create webhooks.
WebhookCreate bool `json:"webhook_create" api:"nullable"`
// Delete webhooks.
Expand All @@ -381,43 +386,44 @@ type APIKeyListResponseAPIKeyPermissions struct {
WebhookUpdate bool `json:"webhook_update" api:"nullable"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
APIKeyCreate respjson.Field
APIKeyDelete respjson.Field
APIKeyRead respjson.Field
DomainCreate respjson.Field
DomainDelete respjson.Field
DomainRead respjson.Field
DomainUpdate respjson.Field
DraftCreate respjson.Field
DraftDelete respjson.Field
DraftRead respjson.Field
DraftSend respjson.Field
DraftUpdate respjson.Field
InboxCreate respjson.Field
InboxDelete respjson.Field
InboxRead respjson.Field
InboxUpdate respjson.Field
LabelBlockedRead respjson.Field
LabelSpamRead respjson.Field
LabelTrashRead respjson.Field
ListEntryCreate respjson.Field
ListEntryDelete respjson.Field
ListEntryRead respjson.Field
MessageRead respjson.Field
MessageSend respjson.Field
MessageUpdate respjson.Field
MetricsRead respjson.Field
PodCreate respjson.Field
PodDelete respjson.Field
PodRead respjson.Field
ThreadDelete respjson.Field
ThreadRead respjson.Field
WebhookCreate respjson.Field
WebhookDelete respjson.Field
WebhookRead respjson.Field
WebhookUpdate respjson.Field
ExtraFields map[string]respjson.Field
raw string
APIKeyCreate respjson.Field
APIKeyDelete respjson.Field
APIKeyRead respjson.Field
APIKeyUpdate respjson.Field
DomainCreate respjson.Field
DomainDelete respjson.Field
DomainRead respjson.Field
DomainUpdate respjson.Field
DraftCreate respjson.Field
DraftDelete respjson.Field
DraftRead respjson.Field
DraftSend respjson.Field
DraftUpdate respjson.Field
InboxCreate respjson.Field
InboxDelete respjson.Field
InboxRead respjson.Field
InboxUpdate respjson.Field
LabelBlockedRead respjson.Field
LabelSpamRead respjson.Field
LabelTrashRead respjson.Field
LabelUnauthenticatedRead respjson.Field
ListEntryCreate respjson.Field
ListEntryDelete respjson.Field
ListEntryRead respjson.Field
MessageDelete respjson.Field
MessageRead respjson.Field
MessageSend respjson.Field
MessageUpdate respjson.Field
MetricsRead respjson.Field
PodCreate respjson.Field
PodDelete respjson.Field
PodRead respjson.Field
WebhookCreate respjson.Field
WebhookDelete respjson.Field
WebhookRead respjson.Field
WebhookUpdate respjson.Field
ExtraFields map[string]respjson.Field
raw string
} `json:"-"`
}

Expand Down Expand Up @@ -453,6 +459,8 @@ type APIKeyNewParamsPermissions struct {
APIKeyDelete param.Opt[bool] `json:"api_key_delete,omitzero"`
// Read API keys.
APIKeyRead param.Opt[bool] `json:"api_key_read,omitzero"`
// Update API keys.
APIKeyUpdate param.Opt[bool] `json:"api_key_update,omitzero"`
// Create domains.
DomainCreate param.Opt[bool] `json:"domain_create,omitzero"`
// Delete domains.
Expand Down Expand Up @@ -485,17 +493,21 @@ type APIKeyNewParamsPermissions struct {
LabelSpamRead param.Opt[bool] `json:"label_spam_read,omitzero"`
// Access messages labeled trash.
LabelTrashRead param.Opt[bool] `json:"label_trash_read,omitzero"`
// Access messages labeled unauthenticated.
LabelUnauthenticatedRead param.Opt[bool] `json:"label_unauthenticated_read,omitzero"`
// Create list entries.
ListEntryCreate param.Opt[bool] `json:"list_entry_create,omitzero"`
// Delete list entries.
ListEntryDelete param.Opt[bool] `json:"list_entry_delete,omitzero"`
// Read list entries.
ListEntryRead param.Opt[bool] `json:"list_entry_read,omitzero"`
// Read messages.
// Delete messages. Also required to delete threads.
MessageDelete param.Opt[bool] `json:"message_delete,omitzero"`
// Read messages. Also required to read threads.
MessageRead param.Opt[bool] `json:"message_read,omitzero"`
// Send messages.
MessageSend param.Opt[bool] `json:"message_send,omitzero"`
// Update message labels.
// Update message labels. Also required to update threads.
MessageUpdate param.Opt[bool] `json:"message_update,omitzero"`
// Read metrics.
MetricsRead param.Opt[bool] `json:"metrics_read,omitzero"`
Expand All @@ -505,10 +517,6 @@ type APIKeyNewParamsPermissions struct {
PodDelete param.Opt[bool] `json:"pod_delete,omitzero"`
// Read pods.
PodRead param.Opt[bool] `json:"pod_read,omitzero"`
// Delete threads.
ThreadDelete param.Opt[bool] `json:"thread_delete,omitzero"`
// Read threads.
ThreadRead param.Opt[bool] `json:"thread_read,omitzero"`
// Create webhooks.
WebhookCreate param.Opt[bool] `json:"webhook_create,omitzero"`
// Delete webhooks.
Expand Down
Loading
Loading