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 README.md
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,13 @@ const resent = await lettermint.messages.resend('message-id', { recipients: ['ja

// Send a webhook delivery's original payload again now; automatic retries continue if it fails.
await lettermint.webhooks.deliveries.retry('webhook-id', 'delivery-id');

// Invite a person to the team; the API sends the invitation email.
const invite = await lettermint.team.invites.create({
email: 'jane@example.com',
role_id: 'role-id',
project_access: { scope: 'selected', project_ids: [project.id] },
});
```

| Property | Methods |
Expand All @@ -272,6 +279,7 @@ await lettermint.webhooks.deliveries.retry('webhook-id', 'delivery-id');
| `suppressions` | `list`, `iterate`, `create`, `delete` |
| `team` | `retrieve`, `update`, `usage`, `roles` |
| `team.members` | `list`, `iterate`, `retrieve`, `updateAssignment` |
| `team.invites` | `list`, `iterate`, `retrieve`, `create`, `update`, `revoke` |
| `webhooks` | `list`, `iterate`, `create`, `retrieve`, `update`, `delete`, `test`, `regenerateSecret` |
| `webhooks.deliveries` | `list(webhookId)`, `iterate(webhookId)`, `retrieve(webhookId, deliveryId)`, `retry(webhookId, deliveryId)` |
| (root) | `ping`, `analytics`, `analyticsPages`, `blockedFileTypes` |
Expand Down
256 changes: 254 additions & 2 deletions src/generated/operations.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Generated by lettermint/sdk-generator — do not edit.
// Spec: lettermint/lettermint@6ef4036dede6326ad2200b945e689e319faf4c0a (main)
// Spec: lettermint/lettermint@a14a098fd3173b67bc366163127ee3715457cd59 (main)
// sending-openapi.json SHA-256: 8d5e962e57d79ab08be52147c094657b681768f06940a76c8eec1b1e03df54cc
// team-openapi.json SHA-256: 4ba5b65756faa9db79e5b95e06414899af0a6e97766eed04656c1b778f28aef7
// team-openapi.json SHA-256: da4398ead370c9b61eadb4007087a6da945df3c609801325fd38fc780cc0e707
// Naming profile: next

import type * as Types from './types.js';
Expand Down Expand Up @@ -136,6 +136,72 @@ export const operations = {
pagination: null,
deprecated: false,
},
/** Revoke a pending team invite */
'DELETE /team/invites/{inviteId}': {
operationId: 'deleteTeamInvite',
method: 'DELETE',
path: '/team/invites/{inviteId}',
auth: 'team',
surfaces: ['team'],
pathParams: ['inviteId'],
query: null,
headers: [],
request: null,
response: { status: [200], contentType: 'application/json', type: 'MessageResponse' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
404: ['ErrorMessage', 'ApiError'],
429: ['TooManyRequests'],
},
pagination: null,
deprecated: false,
},
/** Remove a team member */
'DELETE /team/members/{userId}': {
operationId: 'deleteTeamMember',
method: 'DELETE',
path: '/team/members/{userId}',
auth: 'team',
surfaces: ['team'],
pathParams: ['userId'],
query: null,
headers: [],
request: null,
response: { status: [200], contentType: 'application/json', type: 'MessageResponse' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
404: ['ErrorMessage', 'ApiError'],
409: ['RbacConflictException'],
429: ['TooManyRequests'],
},
pagination: null,
deprecated: false,
},
/** Delete a custom team role */
'DELETE /team/roles/{roleId}': {
operationId: 'deleteTeamRole',
method: 'DELETE',
path: '/team/roles/{roleId}',
auth: 'team',
surfaces: ['team'],
pathParams: ['roleId'],
query: 'DeleteTeamRoleQuery',
headers: [],
request: null,
response: { status: [200], contentType: 'application/json', type: 'MessageResponse' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
404: ['ErrorMessage', 'ApiError'],
409: ['RbacConflictException'],
422: ['ValidationException'],
429: ['TooManyRequests'],
},
pagination: null,
deprecated: false,
},
/** Delete a webhook */
'DELETE /webhooks/{webhookId}': {
operationId: 'deleteWebhook',
Expand Down Expand Up @@ -530,6 +596,47 @@ export const operations = {
pagination: null,
deprecated: false,
},
/** Get team invites */
'GET /team/invites': {
operationId: 'listTeamInvites',
method: 'GET',
path: '/team/invites',
auth: 'team',
surfaces: ['team'],
pathParams: [],
query: 'ListTeamInvitesQuery',
headers: [],
request: null,
response: { status: [200], contentType: 'application/json', type: 'ListTeamInvitesResponse' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
429: ['TooManyRequests'],
},
pagination: { style: 'cursor', items: 'TeamInviteData', cursorParam: 'page[cursor]', sizeParam: 'page[size]' },
deprecated: false,
},
/** Get a team invite */
'GET /team/invites/{inviteId}': {
operationId: 'getTeamInvite',
method: 'GET',
path: '/team/invites/{inviteId}',
auth: 'team',
surfaces: ['team'],
pathParams: ['inviteId'],
query: null,
headers: [],
request: null,
response: { status: [200], contentType: 'application/json', type: 'TeamInviteData' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
404: ['ErrorMessage', 'ApiError'],
429: ['TooManyRequests'],
},
pagination: null,
deprecated: false,
},
/** Get team members */
'GET /team/members': {
operationId: 'listTeamMembers',
Expand Down Expand Up @@ -593,6 +700,27 @@ export const operations = {
pagination: null,
deprecated: false,
},
/** Get a team role */
'GET /team/roles/{roleId}': {
operationId: 'getTeamRole',
method: 'GET',
path: '/team/roles/{roleId}',
auth: 'team',
surfaces: ['team'],
pathParams: ['roleId'],
query: null,
headers: [],
request: null,
response: { status: [200], contentType: 'application/json', type: 'TeamRoleData' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
404: ['ErrorMessage', 'ApiError'],
429: ['TooManyRequests'],
},
pagination: null,
deprecated: false,
},
/** Get team usage statistics */
'GET /team/usage': {
operationId: 'getTeamUsage',
Expand Down Expand Up @@ -1079,6 +1207,74 @@ export const operations = {
pagination: null,
deprecated: false,
},
/** Invite a person to the team */
'POST /team/invites': {
operationId: 'createTeamInvite',
method: 'POST',
path: '/team/invites',
auth: 'team',
surfaces: ['team'],
pathParams: [],
query: null,
headers: [],
request: { type: 'CreateTeamInviteData', contentType: 'application/json', required: true },
response: { status: [201], contentType: 'application/json', type: 'TeamInviteData' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
404: ['ModelNotFoundException'],
409: ['RbacConflictException'],
422: ['ValidationException'],
429: ['TooManyRequests'],
},
pagination: null,
deprecated: false,
},
/** Create a custom team role */
'POST /team/roles': {
operationId: 'createTeamRole',
method: 'POST',
path: '/team/roles',
auth: 'team',
surfaces: ['team'],
pathParams: [],
query: null,
headers: [],
request: { type: 'CreateTeamRoleData', contentType: 'application/json', required: true },
response: { status: [201], contentType: 'application/json', type: 'TeamRoleData' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
409: ['RbacConflictException'],
422: ['ValidationException'],
429: ['TooManyRequests'],
},
pagination: null,
deprecated: false,
},
/** Duplicate a team role */
'POST /team/roles/{roleId}/duplicate': {
operationId: 'duplicateTeamRole',
method: 'POST',
path: '/team/roles/{roleId}/duplicate',
auth: 'team',
surfaces: ['team'],
pathParams: ['roleId'],
query: null,
headers: [],
request: { type: 'DuplicateTeamRoleData', contentType: 'application/json', required: true },
response: { status: [201], contentType: 'application/json', type: 'TeamRoleData' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
404: ['ErrorMessage', 'ApiError'],
409: ['RbacConflictException'],
422: ['ValidationException'],
429: ['TooManyRequests'],
},
pagination: null,
deprecated: false,
},
/** Create a new webhook */
'POST /webhooks': {
operationId: 'createWebhook',
Expand Down Expand Up @@ -1273,6 +1469,29 @@ export const operations = {
pagination: null,
deprecated: false,
},
/** Replace a pending team invite */
'PUT /team/invites/{inviteId}': {
operationId: 'updateTeamInvite',
method: 'PUT',
path: '/team/invites/{inviteId}',
auth: 'team',
surfaces: ['team'],
pathParams: ['inviteId'],
query: null,
headers: [],
request: { type: 'UpdateTeamInviteData', contentType: 'application/json', required: true },
response: { status: [200], contentType: 'application/json', type: 'TeamInviteData' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
404: ['ErrorMessage', 'ApiError'],
409: ['RbacConflictException'],
422: ['ValidationException'],
429: ['TooManyRequests'],
},
pagination: null,
deprecated: false,
},
/** Replace a team member's assignment */
'PUT /team/members/{userId}/assignment': {
operationId: 'updateTeamMemberAssignment',
Expand All @@ -1296,6 +1515,29 @@ export const operations = {
pagination: null,
deprecated: false,
},
/** Replace a custom team role */
'PUT /team/roles/{roleId}': {
operationId: 'updateTeamRole',
method: 'PUT',
path: '/team/roles/{roleId}',
auth: 'team',
surfaces: ['team'],
pathParams: ['roleId'],
query: null,
headers: [],
request: { type: 'UpdateTeamRoleData', contentType: 'application/json', required: true },
response: { status: [200], contentType: 'application/json', type: 'TeamRoleData' },
errors: {
401: ['ApiError'],
403: ['ApiError'],
404: ['ErrorMessage', 'ApiError'],
409: ['RbacConflictException'],
422: ['ValidationException'],
429: ['TooManyRequests'],
},
pagination: null,
deprecated: false,
},
/** Update webhook settings */
'PUT /webhooks/{webhookId}': {
operationId: 'updateWebhook',
Expand Down Expand Up @@ -1326,7 +1568,10 @@ export interface OperationTypes {
AnalyticsResponse: Types.AnalyticsResponse;
ApiError: Types.ApiError;
BlockedFileTypes: Types.BlockedFileTypes;
CreateTeamInviteData: Types.CreateTeamInviteData;
CreateTeamRoleData: Types.CreateTeamRoleData;
DeleteSuppressionResponse: Types.DeleteSuppressionResponse;
DeleteTeamRoleQuery: Types.DeleteTeamRoleQuery;
DeliveryMode: Types.DeliveryMode;
DnsRecordVerificationFailureResponse: Types.DnsRecordVerificationFailureResponse;
DnsVerificationFailureResponse: Types.DnsVerificationFailureResponse;
Expand All @@ -1335,6 +1580,7 @@ export interface OperationTypes {
DomainListData: Types.DomainListData;
DomainMutationResponse: Types.DomainMutationResponse;
DomainStatus: Types.DomainStatus;
DuplicateTeamRoleData: Types.DuplicateTeamRoleData;
ErrorMessage: Types.ErrorMessage;
GetDomainQuery: Types.GetDomainQuery;
GetDomainQueryIncludeItem: Types.GetDomainQueryIncludeItem;
Expand Down Expand Up @@ -1366,6 +1612,8 @@ export interface OperationTypes {
ListSuppressionsQuery: Types.ListSuppressionsQuery;
ListSuppressionsQuerySortItem: Types.ListSuppressionsQuerySortItem;
ListSuppressionsResponse: Types.ListSuppressionsResponse;
ListTeamInvitesQuery: Types.ListTeamInvitesQuery;
ListTeamInvitesResponse: Types.ListTeamInvitesResponse;
ListTeamMembersQuery: Types.ListTeamMembersQuery;
ListTeamMembersResponse: Types.ListTeamMembersResponse;
ListWebhookDeliveriesQuery: Types.ListWebhookDeliveriesQuery;
Expand Down Expand Up @@ -1414,8 +1662,10 @@ export interface OperationTypes {
SuppressionReason: Types.SuppressionReason;
SuppressionStoreResponse: Types.SuppressionStoreResponse;
TeamData: Types.TeamData;
TeamInviteData: Types.TeamInviteData;
TeamMemberData: Types.TeamMemberData;
TeamMutationResponse: Types.TeamMutationResponse;
TeamRoleData: Types.TeamRoleData;
TeamRoleListResponse: Types.TeamRoleListResponse;
TeamUsageDetailData: Types.TeamUsageDetailData;
TestWebhookResponse: Types.TestWebhookResponse;
Expand All @@ -1425,7 +1675,9 @@ export interface OperationTypes {
UpdateReportForwardingResponse: Types.UpdateReportForwardingResponse;
UpdateRouteData: Types.UpdateRouteData;
UpdateTeamData: Types.UpdateTeamData;
UpdateTeamInviteData: Types.UpdateTeamInviteData;
UpdateTeamMemberAssignmentData: Types.UpdateTeamMemberAssignmentData;
UpdateTeamRoleData: Types.UpdateTeamRoleData;
UpdateWebhookData: Types.UpdateWebhookData;
ValidationError: Types.ValidationError;
ValidationException: Types.ValidationException;
Expand Down
Loading
Loading