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
1 change: 1 addition & 0 deletions packages/clients/src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@ export * as RDB from './rdb'
export * as Redis from './redis'
export * as Registry from './registry'
export * as Test from './test'
export * as TransactionalEmail from './transactional_email'
export * as VPC from './vpc'
export * as VPCGW from './vpcgw'
1 change: 1 addition & 0 deletions packages/clients/src/api/transactional_email/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * as v1alpha1 from './v1alpha1'
304 changes: 304 additions & 0 deletions packages/clients/src/api/transactional_email/v1alpha1/api.gen.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,304 @@
// This file was automatically generated. DO NOT EDIT.
// If you have any remark or suggestion do not hesitate to open an issue.
import {
API,
enrichForPagination,
unmarshalServiceInfo,
urlParams,
validatePathParam,
} from '../../../bridge'
import type { Region, ServiceInfo } from '../../../bridge'
import {
marshalCreateDomainRequest,
marshalCreateEmailRequest,
unmarshalCreateEmailResponse,
unmarshalDomain,
unmarshalEmail,
unmarshalListDomainsResponse,
unmarshalListEmailsResponse,
unmarshalStatistics,
} from './marshalling.gen'
import type {
CancelEmailRequest,
CheckDomainRequest,
CreateDomainRequest,
CreateEmailRequest,
CreateEmailResponse,
Domain,
Email,
GetDomainRequest,
GetEmailRequest,
GetServiceInfoRequest,
GetStatisticsRequest,
ListDomainsRequest,
ListDomainsResponse,
ListEmailsRequest,
ListEmailsResponse,
RevokeDomainRequest,
Statistics,
} from './types.gen'

const jsonContentHeaders = {
'Content-Type': 'application/json; charset=utf-8',
}

/**
* Transactional_email.
*
* Tem.
*/
export class TransactionalEmailV1Alpha1GenAPI extends API {
/** Lists the available regions of the API. */
public static readonly LOCALITIES: Region[] = ['fr-par']

getServiceInfo = (request: Readonly<GetServiceInfoRequest> = {}) =>
this.client.fetch<ServiceInfo>(
{
method: 'GET',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}`,
},
unmarshalServiceInfo,
)

/**
* Send an email
*
* @param request - The request {@link CreateEmailRequest}
* @returns A Promise of CreateEmailResponse
*/
createEmail = (request: Readonly<CreateEmailRequest>) =>
this.client.fetch<CreateEmailResponse>(
{
body: JSON.stringify(
marshalCreateEmailRequest(request, this.client.settings),
),
headers: jsonContentHeaders,
method: 'POST',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}/emails`,
},
unmarshalCreateEmailResponse,
)

/**
* Get information about an email
*
* @param request - The request {@link GetEmailRequest}
* @returns A Promise of Email
*/
getEmail = (request: Readonly<GetEmailRequest>) =>
this.client.fetch<Email>(
{
method: 'GET',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}/emails/${validatePathParam('emailId', request.emailId)}`,
},
unmarshalEmail,
)

protected pageOfListEmails = (request: Readonly<ListEmailsRequest> = {}) =>
this.client.fetch<ListEmailsResponse>(
{
method: 'GET',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}/emails`,
urlParams: urlParams(
['domain_id', request.domainId],
['mail_from', request.mailFrom],
['mail_to', request.mailTo],
['page', request.page],
[
'page_size',
request.pageSize ?? this.client.settings.defaultPageSize,
],
[
'project_id',
request.projectId ?? this.client.settings.defaultProjectId,
],
['since', request.since],
['statuses', request.statuses],
['until', request.until],
),
},
unmarshalListEmailsResponse,
)

/**
* List emails sent from a domain and/or for a project and/or for an organization
*
* @param request - The request {@link ListEmailsRequest}
* @returns A Promise of ListEmailsResponse
*/
listEmails = (request: Readonly<ListEmailsRequest> = {}) =>
enrichForPagination('emails', this.pageOfListEmails, request)

/**
* Get statistics on the email statuses
*
* @param request - The request {@link GetStatisticsRequest}
* @returns A Promise of Statistics
*/
getStatistics = (request: Readonly<GetStatisticsRequest> = {}) =>
this.client.fetch<Statistics>(
{
method: 'GET',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}/statistics`,
urlParams: urlParams(
['domain_id', request.domainId],
['mail_from', request.mailFrom],
[
'project_id',
request.projectId ?? this.client.settings.defaultProjectId,
],
['since', request.since],
['until', request.until],
),
},
unmarshalStatistics,
)

/**
* Try to cancel an email if it has not yet been sent
*
* @param request - The request {@link CancelEmailRequest}
* @returns A Promise of Email
*/
cancelEmail = (request: Readonly<CancelEmailRequest>) =>
this.client.fetch<Email>(
{
body: '{}',
headers: jsonContentHeaders,
method: 'POST',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}/emails/${validatePathParam('emailId', request.emailId)}/cancel`,
},
unmarshalEmail,
)

/**
* Register a domain in a project
*
* @param request - The request {@link CreateDomainRequest}
* @returns A Promise of Domain
*/
createDomain = (request: Readonly<CreateDomainRequest>) =>
this.client.fetch<Domain>(
{
body: JSON.stringify(
marshalCreateDomainRequest(request, this.client.settings),
),
headers: jsonContentHeaders,
method: 'POST',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}/domains`,
},
unmarshalDomain,
)

/**
* Get information about a domain
*
* @param request - The request {@link GetDomainRequest}
* @returns A Promise of Domain
*/
getDomain = (request: Readonly<GetDomainRequest>) =>
this.client.fetch<Domain>(
{
method: 'GET',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}/domains/${validatePathParam('domainId', request.domainId)}`,
},
unmarshalDomain,
)

protected pageOfListDomains = (request: Readonly<ListDomainsRequest> = {}) =>
this.client.fetch<ListDomainsResponse>(
{
method: 'GET',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}/domains`,
urlParams: urlParams(
['page', request.page],
[
'page_size',
request.pageSize ?? this.client.settings.defaultPageSize,
],
[
'project_id',
request.projectId ?? this.client.settings.defaultProjectId,
],
['status', request.status],
),
},
unmarshalListDomainsResponse,
)

/**
* List domains in a project and/or in an organization
*
* @param request - The request {@link ListDomainsRequest}
* @returns A Promise of ListDomainsResponse
*/
listDomains = (request: Readonly<ListDomainsRequest> = {}) =>
enrichForPagination('domains', this.pageOfListDomains, request)

/**
* Revoke a domain
*
* @param request - The request {@link RevokeDomainRequest}
* @returns A Promise of Domain
*/
revokeDomain = (request: Readonly<RevokeDomainRequest>) =>
this.client.fetch<Domain>(
{
body: '{}',
headers: jsonContentHeaders,
method: 'POST',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}/domains/${validatePathParam('domainId', request.domainId)}/revoke`,
},
unmarshalDomain,
)

/**
* Ask for an immediate check of a domain (DNS check)
*
* @param request - The request {@link CheckDomainRequest}
* @returns A Promise of Domain
*/
checkDomain = (request: Readonly<CheckDomainRequest>) =>
this.client.fetch<Domain>(
{
body: '{}',
headers: jsonContentHeaders,
method: 'POST',
path: `/transactional-email/v1alpha1/regions/${validatePathParam(
'region',
request.region ?? this.client.settings.defaultRegion,
)}/domains/${validatePathParam('domainId', request.domainId)}/check`,
},
unmarshalDomain,
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export { TransactionalEmailV1Alpha1GenAPI as API } from './api.gen'
export * from './types.gen'
Loading