openapi: 3.1.0
info:
  title: Transactional Email API
  description: |-
    Transactional Email is a platform that allows you to send transactional emails. Unlike marketing emails, (which are mass distributions of the same marketing message to multiple recipients), transactional emails are personalized emails sent to individuals in response to events they have triggered (e.g. password recovery, billing information, delivery updates, etc).

    With Transactional Email, you can:

    - register a domain from which to send emails
    - send transactional emails via an SMTP relay
    - send transactional emails via a REST API
    - view your email's delivery status
    - cancel emails that you no longer wish to send

    ## Concepts

    Refer to our [dedicated concepts page](https://www.scaleway.com/en/docs/managed-services/transactional-email/concepts/) to find definitions of the different terms referring to Transactional Email.

    ## Quickstart

    1. **Configure your environment variables.**

       <Message type="note">
       This is an optional step that seeks to simplify your usage of the API.
       </Message>

        ```bash
        export SCW_ACCESS_KEY="<API access key>"
        export SCW_SECRET_KEY="<API secret key>"
        export SCW_PROJECT_ID="<Scaleway Project ID>"
        ```

    2. **Register your domain**. Run the following command to register your domain. Make sure you note down the `dkim_config` that displays in the output, as you will need it for the next steps.

        ```bash
        curl -X POST "https://api.scaleway.com/transactional-email/v1alpha1/regions/$REGION/domains" \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -d "{\"domain_name\":\"my.domain.example.com\",\"project_id\":\"$PROJECT_ID\"}"
        ```

    3. **Create an SPF and a DKIM record**.

       Find out [how to create your SPF and DKIM records](https://www.scaleway.com/en/docs/managed-services/transactional-email/how-to/add-spf-dkim-records-to-your-domain/) in our documentation.

       <Message type="note">
       The DKIM private key is discarded when your domain is revoked. You must update the corresponding DKIM record if you register that domain again.
       </Message>

    4. **Create an MX record**

       <Message type="note">
       Adding an MX record is not mandatory but we recommend you do it to avoid getting your emails rejected.
       </Message>

       Find out [how to add an MX record](https://www.scaleway.com/en/docs/managed-services/transactional-email/how-to/add-mx-record-to-your-domain/) in our documentation.

    5. **Perform a check of your domain**. Run the following commands to query your domain and then perform a check of your domain.

        ```bash
        curl -X POST "https://api.scaleway.com/transactional-email/v1alpha1/regions/$REGION/domains/<domain-id>/check" \
            -H "X-Auth-Token: $TOKEN" \
            -d "{}"

        # Wait a few seconds,then run

        curl -X GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/$REGION/domains/<domain-id>" \
            -H "X-Auth-Token: $TOKEN"
        ```

       <Message type="note">
       If the check fails, `last_error` will describe what happened. Perform another check request once you have fixed the problem. To ensure good scoring, your DNS must be correctly set up before sending any emails. The domain check is performed asynchronously.
       </Message>

    6. **Send an email via the REST API**. Run the following command to send an email using the REST API.

       <Message type="note">
       The attachment content must be base64 encoded and is limited to 2MB. In the following example, both `html` and `attachments` fields are optional.
       </Message>

        ```bash
        cat > mail.json <<EOF
        {
            "from": {
                "name": "Alice",
                "email": "alice@my.domain.example.com"
            },
            "to": [
                {
                    "name": "Bob",
                    "email": "bob@caramail.fr"
                }
            ],
            "subject": "Some subject",
            "text": "Some text.",
            "html": "<p>Some <span style=\"font-weight:bold\">HTML</span>.</p>",
            "project_id": "<project-id>",
            "attachments": [
                {
                    "name": "file.html",
                    "type": "text/html; charset=\"utf8\"",
                    "content": "PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KICAgIDxoZWFkPgogICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgICAgICA8dGl0bGU+dGl0bGU8L3RpdGxlPgogICAgPC9oZWFkPgogICAgPGJvZHk+CiAgICAgICAgPHA+SGVsbG8gPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWUiPndvcmxkPC9zcGFuPiE8L3A+CiAgICA8L2JvZHk+CjwvaHRtbD4="
                }
            ],
            "additional_headers": [
                {
                    "key": "Reply-To",
                    "value": "admin@my.domain.example.com"
                },
                {
                    "key": "x-project-tracker",
                    "value": "1234"
                }
            ]
        }
        EOF

        curl -X POST "https://api.scaleway.com/transactional-email/v1alpha1/regions/$REGION/emails" \
            -H "X-Auth-Token: $TOKEN" \
            -d @mail.json
        ```

    7. **Send an email via SMTP**.

       An SMTP relay is available at `smtp.tem.scaleway.com` on ports `25`, `587`, `2587`, `465` (TLS) and `2465` (TLS).

       Use your `project_id` to authenticate as username and your token as a password.

    <Message type="requirement">
     - You have a [Scaleway account](https://console.scaleway.com/)
     - You are the owner of the domain name you want to use
     - You have your [Organization and your Project ID](https://console.scaleway.com/project/settings)
     - You have created an [API key](https://www.scaleway.com/en/docs/iam/how-to/create-api-keys/) and that the API key has sufficient [IAM permissions](https://www.scaleway.com/en/docs/iam/reference-content/permission-sets/) to perform the actions described on this page.
     - You have [installed `curl`](https://curl.se/download.html)
    </Message>

    ## Technical information

    ### Regions

    Scaleway's infrastructure spans different [regions and Availability Zones](https://www.scaleway.com/en/docs/console/account/reference-content/products-availability/).

    Transactional Email is available in the Paris region, which is represented by the following path parameter: `fr-par`.

    ## Technical limitations

    - Transactional Email's attachment types are limited to:
      - `application/acad-template`
      - `application/acad`
      - `application/autocad_dwg`
      - `application/autocad_dxf`
      - `application/dwf`
      - `application/dxf`
      - `application/ics`
      - `application/msexcel`
      - `application/msword`
      - `application/pdf`
      - `application/pkcs10`
      - `application/pkcs7-mime`
      - `application/pkcs7-signature`
      - `application/vnd.dwt`
      - `application/vnd.groove-vcard`
      - `application/vnd.ms-excel`
      - `application/vnd.ms-powerpoint`
      - `application/vnd.oasis.opendocument.chart`
      - `application/vnd.oasis.opendocument.database`
      - `application/vnd.oasis.opendocument.formula`
      - `application/vnd.oasis.opendocument.graphics-template`
      - `application/vnd.oasis.opendocument.graphics`
      - `application/vnd.oasis.opendocument.image`
      - `application/vnd.oasis.opendocument.presentation-template`
      - `application/vnd.oasis.opendocument.presentation`
      - `application/vnd.oasis.opendocument.spreadsheet-template`
      - `application/vnd.oasis.opendocument.spreadsheet`
      - `application/vnd.oasis.opendocument.text-master`
      - `application/vnd.oasis.opendocument.text-template`
      - `application/vnd.oasis.opendocument.text-web`
      - `application/vnd.oasis.opendocument.text`
      - `application/vnd.openofficeorg.extension`
      - `application/vnd.openxmlformats-officedocument.presentationml.presentation`
      - `application/vnd.openxmlformats-officedocument.presentationml.slideshow`
      - `application/vnd.openxmlformats-officedocument.presentationml.template`
      - `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`
      - `application/vnd.openxmlformats-officedocument.spreadsheetml.template`
      - `application/vnd.openxmlformats-officedocument.wordprocessingml.document`
      - `application/x-dwf`
      - `application/x-dwg`
      - `application/x-dwt`
      - `application/x-dxf`
      - `application/x-pdf`
      - `application/x-pkcs12`
      - `application/x-pkcs7-certificates`
      - `application/x-pkcs7-certreqresp`
      - `application/x-pkcs7-crl`
      - `application/x-pkcs7-mime`
      - `application/x-pkcs7-signature`
      - `application/xml`
      - `audio/mpeg`
      - `audio/ogg`
      - `audio/wav`
      - `image/gif`
      - `image/jpeg`
      - `image/jpg`
      - `image/png`
      - `image/svg+xml`
      - `image/tiff`
      - `image/vnd.dwg`
      - `image/vnd.dxf`
      - `image/webp`
      - `message/rfc822`
      - `model/vnd.dwf`
      - `text/calendar`
      - `text/csv`
      - `text/html`
      - `text/plain`
      - `text/vcard`
      - `text/x-vcard`
      - `text/xml`
    - Attachment size is limited to 2 MB via API and 50 MB via SMTP.
    - The recursive SPF include directive is not supported

    ## Going further

    For more information about Transactional Email, you can check out the following pages:

    - [Transactional Email Documentation](https://www.scaleway.com/en/docs/managed-services/transactional-email/)
    - [Scaleway Slack Community](https://scaleway-community.slack.com/) join the #transactional-email channel
    - [Contact our support team](https://console.scaleway.com/support/tickets).
  version: v1alpha1
servers:
- url: https://api.scaleway.com
tags:
- name: Emails
  description: |
    This section lists your emails and shows you how to manage them.
- name: Domains
  description: |
    This section lists your domains, shows you to manage them, and gives you information about them.
- name: Statistics
  description: This section gives you information about your emails' statuses.
- name: Webhooks
  description: |
    Webhooks enable real-time communication and automation between systems by sending messages through all protocols supported by SNS, such as HTTP, HTTPS, and Serverless Functions, allowing for immediate updates and actions based on specific events. This feature is in beta. You can request quotas from the [Scaleway betas page](https://www.scaleway.com/fr/betas/#email-webhooks).
- name: Project Settings
  description: |
    Project settings allow you to manage the configuration of your projects.
- name: Blocklist
  description: |
    This section allows you to manage the blocklist of your emails.
- name: offers
  description: |
    This section allows you to manage and get get subscribed information about your project email offer.
- name: offer-subscriptions
  description: |
    This section allows you to manage and get information about your project offer subscriptions.
- name: pools
  description: |
    This section allows you to manage and get information about your sending pools.
- name: Project Consumption
  description: |
    Project consumption allow you to see your project consumption.
components:
  schemas:
    google.protobuf.Int32Value:
      type:
      - integer
      - "null"
      format: int32
    scaleway.transactional_email.v1alpha1.Blocklist:
      type: object
      properties:
        id:
          type: string
          description: ID of the blocklist.
        domain_id:
          type: string
          description: Domain ID linked to the blocklist.
        created_at:
          type:
          - string
          - "null"
          description: Date and time of the blocklist creation. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date and time of the blocklist's last update. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        ends_at:
          type:
          - string
          - "null"
          description: Date and time when the blocklist ends. Empty if the blocklist
            has no end. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        email:
          type: string
          description: Email blocked by the blocklist.
        type:
          description: Type of block for this email.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Blocklist.Type'
        reason:
          type: string
          description: Reason to block this email.
        custom:
          type: boolean
          description: True if this blocklist was created manually. False for an automatic
            Transactional Email blocklist.
      x-properties-order:
      - id
      - domain_id
      - created_at
      - updated_at
      - ends_at
      - email
      - type
      - reason
      - custom
    scaleway.transactional_email.v1alpha1.Blocklist.Type:
      type: string
      enum:
      - unknown_type
      - mailbox_full
      - mailbox_not_found
      x-enum-descriptions:
        values:
          unknown_type: If unspecified, the type of blocklist is unknown by default
          mailbox_full: The recipient's mailbox is full and cannot receive any new
            email
          mailbox_not_found: The recipient's mailbox does not exist
      default: unknown_type
    scaleway.transactional_email.v1alpha1.BulkCreateBlocklistsResponse:
      type: object
      properties:
        blocklists:
          type: array
          description: List of blocklist created.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Blocklist'
      x-properties-order:
      - blocklists
    scaleway.transactional_email.v1alpha1.CreateEmailRequest.Address:
      type: object
      properties:
        email:
          type: string
          description: Email address.
        name:
          type:
          - string
          - "null"
          description: (Optional) Name displayed.
      x-properties-order:
      - email
      - name
    scaleway.transactional_email.v1alpha1.CreateEmailRequest.Attachment:
      type: object
      properties:
        name:
          type: string
          description: Filename of the attachment.
        type:
          type: string
          description: MIME type of the attachment.
        content:
          type: string
          description: Content of the attachment encoded in base64.
      x-properties-order:
      - name
      - type
      - content
    scaleway.transactional_email.v1alpha1.CreateEmailRequest.Header:
      type: object
      properties:
        key:
          type: string
          description: Email header key.
        value:
          type: string
          description: Email header value.
      x-properties-order:
      - key
      - value
    scaleway.transactional_email.v1alpha1.CreateEmailResponse:
      type: object
      properties:
        emails:
          type: array
          description: Single page of emails matching the requested criteria.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Email'
      x-properties-order:
      - emails
    scaleway.transactional_email.v1alpha1.Domain:
      type: object
      properties:
        id:
          type: string
          description: ID of the domain.
        organization_id:
          type: string
          description: ID of the domain's Organization.
        project_id:
          type: string
          description: ID of the domain's Project.
        name:
          type: string
          description: Domain name (example.com).
        status:
          description: Status of the domain.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Status'
        created_at:
          type:
          - string
          - "null"
          description: Date and time of domain creation. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        next_check_at:
          type:
          - string
          - "null"
          description: Date and time of the next scheduled check. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        last_valid_at:
          type:
          - string
          - "null"
          description: Date and time the domain was last valid. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        revoked_at:
          type:
          - string
          - "null"
          description: Date and time of the domain's deletion. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        last_error:
          type:
          - string
          - "null"
          description: Deprecated. Error message returned if the last check failed.
          deprecated: true
        spf_config:
          type: string
          description: Snippet of the SPF record to register in the DNS zone.
        dkim_config:
          type: string
          description: DKIM public key to record in the DNS zone.
        statistics:
          description: Domain's statistics.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Statistics'
        reputation:
          description: The domain's reputation is available when your domain is checked
            and has sent enough emails.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Reputation'
        records:
          description: List of records to configure to validate a domain.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Records'
        autoconfig:
          type: boolean
          description: Status of auto-configuration for the domain's DNS zone.
        region:
          type: string
          description: The region you want to target
      x-properties-order:
      - id
      - organization_id
      - project_id
      - name
      - status
      - created_at
      - next_check_at
      - last_valid_at
      - revoked_at
      - last_error
      - spf_config
      - dkim_config
      - statistics
      - reputation
      - records
      - autoconfig
      - region
    scaleway.transactional_email.v1alpha1.Domain.Records:
      type: object
      properties:
        dmarc:
          description: DMARC TXT record specification.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Records.DMARC'
        dkim:
          description: DKIM TXT record specification.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Records.DKIM'
        spf:
          description: SPF TXT record specification.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Records.SPF'
        mx:
          description: MX record specification.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Records.MX'
      x-properties-order:
      - dmarc
      - dkim
      - spf
      - mx
    scaleway.transactional_email.v1alpha1.Domain.Records.DKIM:
      type: object
      properties:
        name:
          type: string
          description: Name of the DKIM TXT record.
        value:
          type: string
          description: Value of the DKIM TXT record.
      x-properties-order:
      - name
      - value
    scaleway.transactional_email.v1alpha1.Domain.Records.DMARC:
      type: object
      properties:
        name:
          type: string
          description: Name of the DMARC TXT record.
        value:
          type: string
          description: Value of the DMARC TXT record.
      x-properties-order:
      - name
      - value
    scaleway.transactional_email.v1alpha1.Domain.Records.MX:
      type: object
      properties:
        name:
          type: string
          description: Name of the MX record.
        value:
          type: string
          description: Value of the MX record.
      x-properties-order:
      - name
      - value
    scaleway.transactional_email.v1alpha1.Domain.Records.SPF:
      type: object
      properties:
        name:
          type: string
          description: Name of the SPF TXT record.
        value:
          type: string
          description: Value of the SPF TXT record.
      x-properties-order:
      - name
      - value
    scaleway.transactional_email.v1alpha1.Domain.Reputation:
      type: object
      properties:
        status:
          description: Status of your domain's reputation.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Reputation.Status'
        score:
          type: integer
          description: A range from 0 to 100 that determines your domain's reputation
            score. A score of `0` means a bad domain reputation and a score of `100`
            means an excellent domain reputation.
          format: uint32
        scored_at:
          type:
          - string
          - "null"
          description: Time and date the score was calculated. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        previous_score:
          type:
          - integer
          - "null"
          description: The previously-calculated domain's reputation score.
          format: uint32
        previous_scored_at:
          type:
          - string
          - "null"
          description: Time and date the previous reputation score was calculated.
            (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
      x-properties-order:
      - status
      - score
      - scored_at
      - previous_score
      - previous_scored_at
    scaleway.transactional_email.v1alpha1.Domain.Reputation.Status:
      type: string
      enum:
      - unknown_status
      - excellent
      - good
      - average
      - bad
      x-enum-descriptions:
        values:
          unknown_status: If unspecified, the status of the domain's reputation is
            unknown by default
          excellent: The domain has an excellent reputation
          good: The domain has a good reputation
          average: The domain has an average reputation.
          bad: The domain has a bad reputation.
      default: unknown_status
    scaleway.transactional_email.v1alpha1.Domain.Statistics:
      type: object
      properties:
        total_count:
          type: integer
          format: uint32
        sent_count:
          type: integer
          format: uint32
        failed_count:
          type: integer
          format: uint32
        canceled_count:
          type: integer
          format: uint32
      x-properties-order:
      - total_count
      - sent_count
      - failed_count
      - canceled_count
    scaleway.transactional_email.v1alpha1.Domain.Status:
      type: string
      enum:
      - unknown
      - checked
      - unchecked
      - invalid
      - locked
      - revoked
      - pending
      - autoconfiguring
      x-enum-descriptions:
        values:
          unknown: If unspecified, the status of the domain is unknown by default
          checked: The domain is checked
          unchecked: The domain is unchecked
          invalid: The domain is invalid
          locked: The domain is locked
          revoked: The domain is revoked
          pending: The domain is pending, waiting to be checked
          autoconfiguring: The domain is in process of auto-configuration of the domain's
            DNS zone
      default: unknown
    scaleway.transactional_email.v1alpha1.DomainLastStatus:
      type: object
      properties:
        domain_id:
          type: string
          description: The ID of the domain.
        domain_name:
          type: string
          description: The domain name (example.com).
        spf_record:
          description: The SPF record verification data.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus.SpfRecord'
        dkim_record:
          description: The DKIM record verification data.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus.DkimRecord'
        dmarc_record:
          description: The DMARC record verification data.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus.DmarcRecord'
        mx_record:
          description: The MX record verification data.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus.MXRecord'
        autoconfig_state:
          description: The verification state of domain auto-configuration.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus.AutoconfigState'
      x-properties-order:
      - domain_id
      - domain_name
      - spf_record
      - dkim_record
      - dmarc_record
      - mx_record
      - autoconfig_state
    scaleway.transactional_email.v1alpha1.DomainLastStatus.AutoconfigState:
      type: object
      properties:
        enabled:
          type: boolean
          description: Enable or disable the auto-configuration of domain DNS records.
        autoconfigurable:
          type: boolean
          description: Whether the domain can be auto-configured or not.
        reason:
          description: The reason that the domain cannot be auto-configurable.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus.AutoconfigState.Reason'
      x-properties-order:
      - enabled
      - autoconfigurable
      - reason
    scaleway.transactional_email.v1alpha1.DomainLastStatus.AutoconfigState.Reason:
      type: string
      enum:
      - unknown_reason
      - permission_denied
      - domain_not_found
      x-enum-descriptions:
        values:
          unknown_reason: If not specified, the auto-configuration state is unknown
            by default
          permission_denied: The token doesn't have the necessary permissions to manage
            the domain's DNS records
          domain_not_found: The domain does not exist or isn't manageable by the token
      default: unknown_reason
    scaleway.transactional_email.v1alpha1.DomainLastStatus.DkimRecord:
      type: object
      properties:
        status:
          description: Status of the DKIM record's configuration.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus.RecordStatus'
        last_valid_at:
          type:
          - string
          - "null"
          description: Time and date the DKIM record was last valid. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        error:
          type:
          - string
          - "null"
          description: An error text displays in case the record is not valid.
      x-properties-order:
      - status
      - last_valid_at
      - error
    scaleway.transactional_email.v1alpha1.DomainLastStatus.DmarcRecord:
      type: object
      properties:
        status:
          description: Status of the DMARC record's configuration.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus.RecordStatus'
        last_valid_at:
          type:
          - string
          - "null"
          description: Time and date the DMARC record was last valid. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        error:
          type:
          - string
          - "null"
          description: An error text displays in case the record is not valid.
      x-properties-order:
      - status
      - last_valid_at
      - error
    scaleway.transactional_email.v1alpha1.DomainLastStatus.MXRecord:
      type: object
      properties:
        status:
          description: |-
            Status of the MX record's configuration.
            Status of the MX record's configuration. This record is optional to validate a domain, but highly recommended.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus.RecordStatus'
        last_valid_at:
          type:
          - string
          - "null"
          description: Time and date the MX record was last valid. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        error:
          type:
          - string
          - "null"
          description: An error text displays in case the record is not valid.
      x-properties-order:
      - status
      - last_valid_at
      - error
    scaleway.transactional_email.v1alpha1.DomainLastStatus.RecordStatus:
      type: string
      enum:
      - unknown_record_status
      - valid
      - invalid
      - not_found
      x-enum-descriptions:
        values:
          unknown_record_status: If unspecified, the status of the domain's record
            is unknown by default
          valid: The record is valid
          invalid: The record is invalid
          not_found: The record was not found
      default: unknown_record_status
    scaleway.transactional_email.v1alpha1.DomainLastStatus.SpfRecord:
      type: object
      properties:
        status:
          description: Status of the SPF record's configuration.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus.RecordStatus'
        last_valid_at:
          type:
          - string
          - "null"
          description: Time and date the SPF record was last valid. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        error:
          type:
          - string
          - "null"
          description: An error text displays in case the record is not valid.
      x-properties-order:
      - status
      - last_valid_at
      - error
    scaleway.transactional_email.v1alpha1.Email:
      type: object
      properties:
        id:
          type: string
          description: Technical ID of the email.
        message_id:
          type: string
          description: Message ID of the email.
        project_id:
          type: string
          description: ID of the Project to which the email belongs.
        mail_from:
          type: string
          description: Email address of the sender.
        rcpt_to:
          type: string
          description: Deprecated. Email address of the recipient.
          deprecated: true
        mail_rcpt:
          type: string
          description: Email address of the recipient.
        rcpt_type:
          description: Type of recipient.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Email.RcptType'
        subject:
          type: string
          description: Subject of the email.
        created_at:
          type:
          - string
          - "null"
          description: Creation date of the email object. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Last update of the email object. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        status:
          description: Status of the email.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Email.Status'
        status_details:
          type:
          - string
          - "null"
          description: Additional status information.
        try_count:
          type: integer
          description: Number of attempts to send the email.
          format: uint32
        last_tries:
          type: array
          description: Information about the last three attempts to send the email.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Email.Try'
        flags:
          type: array
          description: Flags categorize emails. They allow you to obtain more information
            about recurring errors, for example.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Email.Flag'
      x-properties-order:
      - id
      - message_id
      - project_id
      - mail_from
      - rcpt_to
      - mail_rcpt
      - rcpt_type
      - subject
      - created_at
      - updated_at
      - status
      - status_details
      - try_count
      - last_tries
      - flags
    scaleway.transactional_email.v1alpha1.Email.Flag:
      type: string
      enum:
      - unknown_flag
      - soft_bounce
      - hard_bounce
      - spam
      - mailbox_full
      - mailbox_not_found
      - greylisted
      - send_before_expiration
      - blocklisted
      x-enum-descriptions:
        values:
          unknown_flag: If unspecified, the flag type is unknown by default
          soft_bounce: Refers to a non critical error received while sending the email(s).
            Soft bounced emails are retried
          hard_bounce: Refers to a critical error that happened while sending the
            email(s)
          spam: Refers to an email considered as spam
          mailbox_full: Refers to an undelivered email because the recipient mailbox
            is full
          mailbox_not_found: Refers to an undelivered email because the recipient
            mailbox does not exist
          greylisted: Refers to an email slightly delayed by the recipient to ensure
            that Scaleway is not sending spam
          send_before_expiration: Refers to an email with a `send-before` tag to indicate
            the maximum time limit for the email to be sent
          blocklisted: Refers to an email blocked by a blocklist
      default: unknown_flag
    scaleway.transactional_email.v1alpha1.Email.RcptType:
      type: string
      enum:
      - unknown_rcpt_type
      - to
      - cc
      - bcc
      x-enum-descriptions:
        values:
          unknown_rcpt_type: If unspecified, the recipient type is unknown by default
          to: Primary recipient
          cc: Carbon copy recipient
          bcc: Blind carbon copy recipient
      default: unknown_rcpt_type
    scaleway.transactional_email.v1alpha1.Email.Status:
      type: string
      enum:
      - unknown
      - new
      - sending
      - sent
      - failed
      - canceled
      x-enum-descriptions:
        values:
          unknown: If unspecified, the status of the email is unknown by default
          new: The email is new
          sending: The email is in the process of being sent
          sent: The email was sent
          failed: The sending of the email failed
          canceled: The sending of the email was canceled
      default: unknown
    scaleway.transactional_email.v1alpha1.Email.Try:
      type: object
      properties:
        rank:
          type: integer
          description: Rank number of this attempt to send the email.
          format: uint32
        tried_at:
          type:
          - string
          - "null"
          description: Date of the attempt to send the email. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        code:
          type: integer
          description: The SMTP status code received after the attempt. 0 if the attempt
            did not reach an SMTP server.
          format: int32
        message:
          type: string
          description: The SMTP message received. If the attempt did not reach an
            SMTP server, the message returned explains what happened.
      x-properties-order:
      - rank
      - tried_at
      - code
      - message
    scaleway.transactional_email.v1alpha1.ListBlocklistsRequest.OrderBy:
      type: string
      enum:
      - created_at_desc
      - created_at_asc
      - ends_at_desc
      - ends_at_asc
      x-enum-descriptions:
        values:
          created_at_desc: Order by creation date (descending chronological order)
          created_at_asc: Order by creation date (ascending chronological order)
          ends_at_desc: Order by blocklist ends date (descending chronological order)
          ends_at_asc: Order by blocklist ends date (ascending chronological order)
      default: created_at_desc
    scaleway.transactional_email.v1alpha1.ListBlocklistsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Number of blocklists matching the requested criteria.
          format: uint64
        blocklists:
          type: array
          description: Single page of blocklists matching the requested criteria.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Blocklist'
      x-properties-order:
      - total_count
      - blocklists
    scaleway.transactional_email.v1alpha1.ListDomainsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Number of domains that match the request (without pagination).
          format: uint32
        domains:
          type: array
          description: Single page of domains matching the requested criteria.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain'
      x-properties-order:
      - total_count
      - domains
    scaleway.transactional_email.v1alpha1.ListEmailsRequest.OrderBy:
      type: string
      enum:
      - created_at_desc
      - created_at_asc
      - updated_at_desc
      - updated_at_asc
      - status_desc
      - status_asc
      - mail_from_desc
      - mail_from_asc
      - mail_rcpt_desc
      - mail_rcpt_asc
      - subject_desc
      - subject_asc
      x-enum-descriptions:
        values:
          created_at_desc: Order by creation date (descending chronological order)
          created_at_asc: Order by creation date (ascending chronological order)
          updated_at_desc: Order by last update date (descending chronological order)
          updated_at_asc: Order by last update date (ascending chronological order)
          status_desc: Order by status (descending alphabetical order)
          status_asc: Order by status (ascending alphabetical order)
          mail_from_desc: Order by mail_from (descending alphabetical order)
          mail_from_asc: Order by mail_from (ascending alphabetical order)
          mail_rcpt_desc: Order by mail recipient (descending alphabetical order)
          mail_rcpt_asc: Order by mail recipient (ascending alphabetical order)
          subject_desc: Order by subject (descending alphabetical order)
          subject_asc: Order by subject (ascending alphabetical order)
      default: created_at_desc
    scaleway.transactional_email.v1alpha1.ListEmailsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Number of emails matching the requested criteria.
          format: uint32
        emails:
          type: array
          description: Single page of emails matching the requested criteria.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Email'
      x-properties-order:
      - total_count
      - emails
    scaleway.transactional_email.v1alpha1.ListOfferSubscriptionsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Number of offer-subscriptions matching the requested criteria.
          format: uint64
        offer_subscriptions:
          type: array
          description: Single page of offer-subscriptions matching the requested criteria.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.OfferSubscription'
      x-properties-order:
      - total_count
      - offer_subscriptions
    scaleway.transactional_email.v1alpha1.ListOffersResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Number of offers matching the requested criteria.
          format: uint64
        offers:
          type: array
          description: Single page of offers matching the requested criteria.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Offer'
      x-properties-order:
      - total_count
      - offers
    scaleway.transactional_email.v1alpha1.ListPoolsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Number of pools matching the requested criteria.
          format: uint64
        pools:
          type: array
          description: Single page of pools matching the requested criteria.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Pool'
      x-properties-order:
      - total_count
      - pools
    scaleway.transactional_email.v1alpha1.ListWebhookEventsRequest.OrderBy:
      type: string
      enum:
      - created_at_desc
      - created_at_asc
      default: created_at_desc
    scaleway.transactional_email.v1alpha1.ListWebhookEventsResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Number of Webhook events matching the requested criteria.
          format: uint64
        webhook_events:
          type: array
          description: Single page of Webhook events matching the requested criteria.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.WebhookEvent'
      x-properties-order:
      - total_count
      - webhook_events
    scaleway.transactional_email.v1alpha1.ListWebhooksRequest.OrderBy:
      type: string
      enum:
      - created_at_desc
      - created_at_asc
      default: created_at_desc
    scaleway.transactional_email.v1alpha1.ListWebhooksResponse:
      type: object
      properties:
        total_count:
          type: integer
          description: Number of Webhooks matching the requested criteria.
          format: uint64
        webhooks:
          type: array
          description: Single page of Webhooks matching the requested criteria.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Webhook'
      x-properties-order:
      - total_count
      - webhooks
    scaleway.transactional_email.v1alpha1.Offer:
      type: object
      properties:
        name:
          description: Name of the offer.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Offer.Name'
        created_at:
          type:
          - string
          - "null"
          description: Date and time of the offer creation. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        commitment_period:
          type:
          - string
          - "null"
          description: Period of commitment. (in seconds)
          example: 2.5s
        sla:
          type: number
          description: Service Level Agreement percentage of the offer.
          format: float
        max_domains:
          type: integer
          description: Max number of checked domains that can be associated with the
            offer.
          format: int32
        max_dedicated_ips:
          type: integer
          description: Max number of dedicated IPs that can be associated with the
            offer.
          format: int32
        included_monthly_emails:
          type: integer
          description: Number of emails included in the offer per month.
          format: int32
        max_webhooks_per_domain:
          type: integer
          description: Max number of webhooks that can be associated with the offer.
          format: int32
        max_custom_blocklists_per_domain:
          type: integer
          description: Max number of active custom blocklists that can be associated
            with the offer.
          format: int32
      x-properties-order:
      - name
      - created_at
      - commitment_period
      - sla
      - max_domains
      - max_dedicated_ips
      - included_monthly_emails
      - max_webhooks_per_domain
      - max_custom_blocklists_per_domain
    scaleway.transactional_email.v1alpha1.Offer.Name:
      type: string
      enum:
      - unknown_name
      - essential
      - scale
      x-enum-descriptions:
        values:
          unknown_name: If unspecified, the offer name is unknown by default
          essential: The 'essential' offer
          scale: The 'scale' offer
      default: unknown_name
    scaleway.transactional_email.v1alpha1.OfferSubscription:
      type: object
      properties:
        organization_id:
          type: string
          description: ID of the offer-subscription Organization.
        project_id:
          type: string
          description: ID of the offer-subscription Project.
        offer_name:
          description: Name of the offer associated with the Project.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Offer.Name'
        subscribed_at:
          type:
          - string
          - "null"
          description: Date and time of the subscription. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        cancellation_available_at:
          type:
          - string
          - "null"
          description: Date and time of the end of the offer-subscription commitment.
            (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        sla:
          type: number
          description: Service Level Agreement percentage of the offer-subscription.
          format: float
        max_domains:
          type: integer
          description: Max number of domains that can be associated with the offer-subscription
            for a particular Project.
          format: int32
        max_dedicated_ips:
          type: integer
          description: Max number of dedicated IPs that can be associated with the
            offer-subscription for a particular Project.
          format: int32
        max_webhooks_per_domain:
          type: integer
          description: Max number of webhooks that can be associated with the offer-subscription
            for a particular Project.
          format: int32
        max_custom_blocklists_per_domain:
          type: integer
          description: Max number of custom blocklists that can be associated with
            the offer-subscription for a particular Project.
          format: int32
        included_monthly_emails:
          type: integer
          description: Number of emails included in the offer-subscription per month.
          format: int32
      x-properties-order:
      - organization_id
      - project_id
      - offer_name
      - subscribed_at
      - cancellation_available_at
      - sla
      - max_domains
      - max_dedicated_ips
      - max_webhooks_per_domain
      - max_custom_blocklists_per_domain
      - included_monthly_emails
    scaleway.transactional_email.v1alpha1.Pool:
      type: object
      properties:
        project_id:
          type: string
          description: ID of the Project.
        status:
          description: Status of the pool.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Pool.Status'
        details:
          type:
          - string
          - "null"
          description: Details of the pool.
        zone:
          type:
          - string
          - "null"
          description: Zone of the pool.
        ips:
          type: array
          description: IPs of the pool. (IP address)
          example:
          - 1.2.3.4
          items:
            type: string
        reverse:
          type:
          - string
          - "null"
          description: Reverse hostname of all IPs of the pool.
      x-properties-order:
      - project_id
      - status
      - details
      - zone
      - ips
      - reverse
    scaleway.transactional_email.v1alpha1.Pool.Status:
      type: string
      enum:
      - unknown_status
      - disabled
      - creating
      - ready
      - error
      x-enum-descriptions:
        values:
          unknown_status: If unspecified, the status is unknown by default
          disabled: The pool is disabled
          creating: The pool is being created
          ready: The pool is ready to be used
          error: The pool has an error status
      default: unknown_status
    scaleway.transactional_email.v1alpha1.ProjectConsumption:
      type: object
      properties:
        project_id:
          type: string
          description: ID of the project.
        domains_count:
          type: integer
          description: Number of domains in the project.
          format: int32
        dedicated_ips_count:
          type: integer
          description: Number of dedicated IP in the project.
          format: int32
        monthly_emails_count:
          type: integer
          description: Number of emails sent during the current month in the project.
          format: int32
        webhooks_count:
          type: integer
          description: Number of webhooks in the project.
          format: int32
        custom_blocklists_count:
          type: integer
          description: Number of custom blocklists in the project.
          format: int32
      x-properties-order:
      - project_id
      - domains_count
      - dedicated_ips_count
      - monthly_emails_count
      - webhooks_count
      - custom_blocklists_count
    scaleway.transactional_email.v1alpha1.ProjectSettings:
      type: object
      properties:
        periodic_report:
          description: Information about your periodic report.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ProjectSettings.PeriodicReport'
      x-properties-order:
      - periodic_report
    scaleway.transactional_email.v1alpha1.ProjectSettings.PeriodicReport:
      type: object
      properties:
        enabled:
          type: boolean
          description: Enable or disable periodic report notifications.
        frequency:
          description: At which frequency you receive periodic report notifications.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ProjectSettings.PeriodicReport.Frequency'
        sending_hour:
          type: integer
          description: At which hour you receive periodic report notifications.
          format: uint32
        sending_day:
          type: integer
          description: On which day you receive periodic report notifications (1-7
            weekly, 1-28 monthly).
          format: uint32
      x-properties-order:
      - enabled
      - frequency
      - sending_hour
      - sending_day
    scaleway.transactional_email.v1alpha1.ProjectSettings.PeriodicReport.Frequency:
      type: string
      enum:
      - unknown_frequency
      - monthly
      - weekly
      - daily
      x-enum-descriptions:
        values:
          unknown_frequency: If unspecified, the frequency is unknown by default
          monthly: The periodic report is sent once a month
          weekly: The periodic report is sent once a week
          daily: The periodic report is sent once a day
      default: unknown_frequency
    scaleway.transactional_email.v1alpha1.Statistics:
      type: object
      properties:
        total_count:
          type: integer
          description: Total number of emails matching the requested criteria.
          format: uint32
        new_count:
          type: integer
          description: Number of emails still in the `new` transient state. This means
            emails received from the API but not yet processed.
          format: uint32
        sending_count:
          type: integer
          description: Number of emails still in the `sending` transient state. This
            means emails received from the API but not yet in their final status.
          format: uint32
        sent_count:
          type: integer
          description: Number of emails in the final `sent` state. This means emails
            that have been delivered to the target mail system.
          format: uint32
        failed_count:
          type: integer
          description: Number of emails in the final `failed` state. This means emails
            that have been refused by the target mail system with a final error status.
          format: uint32
        canceled_count:
          type: integer
          description: Number of emails in the final `canceled` state. This means
            emails that have been canceled upon request.
          format: uint32
      x-properties-order:
      - total_count
      - new_count
      - sending_count
      - sent_count
      - failed_count
      - canceled_count
    scaleway.transactional_email.v1alpha1.UpdateProjectSettingsRequest.UpdatePeriodicReport:
      type: object
      properties:
        enabled:
          type:
          - boolean
          - "null"
          description: (Optional) Enable or disable periodic report notifications.
        frequency:
          description: (Optional) Frequency at which you receive periodic report notifications.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ProjectSettings.PeriodicReport.Frequency'
        sending_hour:
          type:
          - integer
          - "null"
          description: (Optional) Hour at which you receive periodic report notifications.
          format: uint32
        sending_day:
          type:
          - integer
          - "null"
          description: (Optional) On which day you receive periodic report notifications
            (1-7 weekly, 1-28 monthly).
          format: uint32
      x-properties-order:
      - enabled
      - frequency
      - sending_hour
      - sending_day
    scaleway.transactional_email.v1alpha1.Webhook:
      type: object
      properties:
        id:
          type: string
          description: ID of the Webhook.
        domain_id:
          type: string
          description: ID of the Domain to watch for triggering events.
        organization_id:
          type: string
          description: ID of the Webhook Organization.
        project_id:
          type: string
          description: ID of the Webhook Project.
        name:
          type: string
          description: Name of the Webhook.
        event_types:
          type: array
          description: List of event types that will trigger a Webhook Event.
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.WebhookEvent.Type'
        sns_arn:
          type: string
          description: Scaleway SNS ARN topic to push the events to.
        created_at:
          type:
          - string
          - "null"
          description: Date and time of the Webhook creation. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date and time of last Webhook updates. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
      x-properties-order:
      - id
      - domain_id
      - organization_id
      - project_id
      - name
      - event_types
      - sns_arn
      - created_at
      - updated_at
    scaleway.transactional_email.v1alpha1.WebhookEvent:
      type: object
      properties:
        id:
          type: string
          description: ID of the Webhook Event.
        webhook_id:
          type: string
          description: ID of the Webhook that triggers the Event.
        organization_id:
          type: string
          description: ID of the Webhook Event Organization.
        project_id:
          type: string
          description: ID of the Webhook Event Project.
        domain_id:
          type: string
          description: ID of the webhook event domain.
        type:
          description: Type of the Webhook Event.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.WebhookEvent.Type'
        status:
          description: Status of the Webhook Event.
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.WebhookEvent.Status'
        data:
          type: string
          description: Data sent to the Webhook destination.
        created_at:
          type:
          - string
          - "null"
          description: Date and time of the Webhook Event creation. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        updated_at:
          type:
          - string
          - "null"
          description: Date and time of last Webhook Event updates. (RFC 3339 format)
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
        email_id:
          type:
          - string
          - "null"
          description: Optional Email ID if the event is triggered by an Email resource.
      x-properties-order:
      - id
      - webhook_id
      - organization_id
      - project_id
      - domain_id
      - type
      - status
      - data
      - created_at
      - updated_at
      - email_id
    scaleway.transactional_email.v1alpha1.WebhookEvent.Status:
      type: string
      enum:
      - unknown_status
      - sending
      - sent
      - failed
      x-enum-descriptions:
        values:
          unknown_status: If unspecified, the status of the Webhook event is unknown
            by default
          sending: The Webhook event is being sent
          sent: The Webhook event was sent
          failed: The Webhook event cannot be sent after multiple retries
      default: unknown_status
    scaleway.transactional_email.v1alpha1.WebhookEvent.Type:
      type: string
      enum:
      - unknown_type
      - email_queued
      - email_dropped
      - email_deferred
      - email_delivered
      - email_spam
      - email_mailbox_not_found
      - email_blocklisted
      - blocklist_created
      x-enum-descriptions:
        values:
          unknown_type: If unspecified, the type of the Webhook Event is unknown by
            default
          email_queued: The email was received and is in preparation to be sent to
            the recipient servers
          email_dropped: The email was sent but hard-bounced by the recipient server
          email_deferred: The email was sent but soft-bounced by the recipient server.
            In this case, the sending of the email will be automatically retried
          email_delivered: The email was successfully sent
          email_spam: The email resource was identified as spam by Scaleway or by
            the recipient server
          email_mailbox_not_found: The email hard-bounced with a "mailbox not found"
            error
          email_blocklisted: The email was blocked before it was sent, as the recipient
            matches a blocklist
          blocklist_created: A new blocklist is created
      default: unknown_type
  securitySchemes:
    scaleway:
      in: header
      name: X-Auth-Token
      type: apiKey
paths:
  /transactional-email/v1alpha1/regions/{region}/blocklists:
    get:
      tags:
      - Blocklist
      operationId: ListBlocklists
      summary: List blocklists
      description: Retrieve the list of blocklists.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: query
        name: order_by
        description: (Optional) List blocklist corresponding to specific criteria.
        schema:
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListBlocklistsRequest.OrderBy'
      - in: query
        name: page
        description: (Optional) Requested page number. Value must be greater or equal
          to 1.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: (Optional) Requested page size. Value must be between 1 and 100.
        schema:
          type: integer
          format: uint32
      - in: query
        name: domain_id
        description: (Optional) Filter by a domain ID. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: email
        description: (Optional) Filter by an email address.
        schema:
          type: string
      - in: query
        name: type
        description: (Optional) Filter by a blocklist type.
        schema:
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Blocklist.Type'
      - in: query
        name: custom
        description: (Optional) Filter by custom blocklist (true) or automatic Transactional
          Email blocklist (false).
        schema:
          type: boolean
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListBlocklistsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/blocklists?domain_id=6170692e-7363-616c-6577-61792e636f6d"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/blocklists" \
            X-Auth-Token:$SCW_SECRET_KEY \
            domain_id==6170692e-7363-616c-6577-61792e636f6d
    post:
      tags:
      - Blocklist
      operationId: BulkCreateBlocklists
      summary: Bulk create blocklists
      description: Create multiple blocklists in a specific Project or Organization
        using the `region` parameter.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.BulkCreateBlocklistsResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain_id:
                  type: string
                  description: Domain ID linked to the blocklist. (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                emails:
                  type: array
                  description: Email blocked by the blocklist.
                  items:
                    type: string
                type:
                  description: Type of blocklist.
                  $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Blocklist.Type'
                reason:
                  type:
                  - string
                  - "null"
                  description: Reason to block the email.
              x-properties-order:
              - domain_id
              - emails
              - type
              - reason
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"domain_id":"6170692e-7363-616c-6577-61792e636f6d"}' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/blocklists"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/blocklists" \
            X-Auth-Token:$SCW_SECRET_KEY \
            domain_id="6170692e-7363-616c-6577-61792e636f6d"
  /transactional-email/v1alpha1/regions/{region}/blocklists/{blocklist_id}:
    delete:
      tags:
      - Blocklist
      operationId: DeleteBlocklist
      summary: Delete a blocklist
      description: You must specify the blocklist you want to delete by the `region`
        and `blocklist_id`.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: blocklist_id
        description: ID of the blocklist to delete. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/blocklists/{blocklist_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/blocklists/{blocklist_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/domains:
    get:
      tags:
      - Domains
      operationId: ListDomains
      summary: List domains
      description: Retrieve domains in a specific Project or in a specific Organization
        using the `region` parameter.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: query
        name: page
        description: Requested page number. Value must be greater or equal to 1.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Requested page size. Value must be between 1 and 1000.
        schema:
          type: integer
          format: uint32
      - in: query
        name: project_id
        description: (Optional) ID of the Project in which to list the domains. (UUID
          format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: status
        description: (Optional) List domains under specific statuses.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain.Status'
      - in: query
        name: organization_id
        description: (Optional) ID of the Organization in which to list the domains.
          (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: name
        description: (Optional) Names of the domains to list.
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListDomainsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Domains
      operationId: CreateDomain
      summary: Register a domain in a project
      description: You must specify the `region`, `project_id` and `domain_name` to
        register a domain in a specific Project.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: ID of the project to which the domain belongs. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                domain_name:
                  type: string
                  description: Fully qualified domain dame.
                accept_tos:
                  type: boolean
                  description: Deprecated. Accept Scaleway's Terms of Service.
                  deprecated: true
                autoconfig:
                  type: boolean
                  description: Activate auto-configuration of the domain's DNS zone.
              x-properties-order:
              - project_id
              - domain_name
              - accept_tos
              - autoconfig
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "accept_tos": false,
              "autoconfig": false,
              "domain_name": "string",
              "project_id": "6170692e-7363-616c-6577-61792e636f6d"
            }' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains" \
            X-Auth-Token:$SCW_SECRET_KEY \
            accept_tos:=false \
            autoconfig:=false \
            domain_name="string" \
            project_id="6170692e-7363-616c-6577-61792e636f6d"
  /transactional-email/v1alpha1/regions/{region}/domains/{domain_id}:
    get:
      tags:
      - Domains
      operationId: GetDomain
      summary: Get information about a domain
      description: Retrieve information about a specific domain using the `region`
        and `domain_id` parameters. Monitor your domain's reputation and improve **average**
        and **bad** reputation statuses, using your domain's **Email activity** tab
        on the [Scaleway console](https://console.scaleway.com/transactional-email/domains)
        to get a more detailed report. Check out our [dedicated documentation](https://www.scaleway.com/en/docs/managed-services/transactional-email/reference-content/understanding-tem-reputation-score/)
        to improve your domain's reputation.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: domain_id
        description: ID of the domain. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Domains
      operationId: UpdateDomain
      summary: Update a domain
      description: Update a domain auto-configuration.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: domain_id
        description: ID of the domain to update. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                autoconfig:
                  type:
                  - boolean
                  - "null"
                  description: (Optional) If set to true, activate auto-configuration
                    of the domain's DNS zone.
              x-properties-order:
              - autoconfig
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/check:
    post:
      tags:
      - Domains
      operationId: CheckDomain
      summary: Domain DNS check
      description: Perform an immediate DNS check of a domain using the `region` and
        `domain_id` parameters.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: domain_id
        description: ID of the domain to check. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/check"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/check" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/revoke:
    post:
      tags:
      - Domains
      operationId: RevokeDomain
      summary: Delete a domain
      description: You must specify the domain you want to delete by the `region`
        and `domain_id`. Deleting a domain is permanent and cannot be undone.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: domain_id
        description: ID of the domain to delete. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Domain'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/revoke"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/revoke" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/verification:
    get:
      tags:
      - Domains
      operationId: GetDomainLastStatus
      summary: Display SPF, DKIM, DMARC and MX records status and potential errors
      description: Display SPF, DKIM, DMARC and MX records status and potential errors,
        including the found records to make debugging easier.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: domain_id
        description: ID of the domain to get records status. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.DomainLastStatus'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/verification"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/domains/{domain_id}/verification" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/emails:
    get:
      tags:
      - Emails
      operationId: ListEmails
      summary: List emails
      description: Retrieve the list of emails sent from a specific domain or for
        a specific Project or Organization. You must specify the `region`.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: query
        name: page
        schema:
          $ref: '#/components/schemas/google.protobuf.Int32Value'
      - in: query
        name: page_size
        schema:
          type: integer
          format: uint32
      - in: query
        name: project_id
        description: (Optional) ID of the Project in which to list the emails. (UUID
          format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: domain_id
        description: (Optional) ID of the domain for which to list the emails. (UUID
          format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: message_id
        description: (Optional) ID of the message for which to list the emails. (UUID
          format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: since
        description: (Optional) List emails created after this date. (RFC 3339 format)
        schema:
          type: string
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
      - in: query
        name: until
        description: (Optional) List emails created before this date. (RFC 3339 format)
        schema:
          type: string
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
      - in: query
        name: mail_from
        description: (Optional) List emails sent with this sender's email address.
        schema:
          type: string
      - in: query
        name: mail_to
        description: Deprecated. List emails sent to this recipient's email address.
        schema:
          type: string
          deprecated: true
      - in: query
        name: mail_rcpt
        description: (Optional) List emails sent to this recipient's email address.
        schema:
          type: string
      - in: query
        name: statuses
        description: (Optional) List emails with any of these statuses.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Email.Status'
      - in: query
        name: subject
        description: (Optional) List emails with this subject.
        schema:
          type: string
      - in: query
        name: search
        description: (Optional) List emails by searching to all fields.
        schema:
          type: string
      - in: query
        name: order_by
        description: (Optional) List emails corresponding to specific criteria.
        schema:
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListEmailsRequest.OrderBy'
      - in: query
        name: flags
        description: (Optional) List emails containing only specific flags.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Email.Flag'
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListEmailsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/emails"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/emails" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Emails
      operationId: CreateEmail
      summary: Send an email
      description: You must specify the `region`, the sender and the recipient's information
        and the `project_id` to send an email from a checked domain.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.CreateEmailResponse'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                from:
                  description: Sender information. Must be from a checked domain declared
                    in the Project.
                  $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.CreateEmailRequest.Address'
                to:
                  type: array
                  description: An array of the primary recipient's information.
                  items:
                    $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.CreateEmailRequest.Address'
                cc:
                  type: array
                  description: An array of the carbon copy recipient's information.
                  items:
                    $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.CreateEmailRequest.Address'
                bcc:
                  type: array
                  description: An array of the blind carbon copy recipient's information.
                  items:
                    $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.CreateEmailRequest.Address'
                subject:
                  type: string
                  description: Subject of the email.
                text:
                  type: string
                  description: Text content.
                html:
                  type: string
                  description: HTML content.
                project_id:
                  type: string
                  description: ID of the Project in which to create the email. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                attachments:
                  type: array
                  description: Array of attachments.
                  items:
                    $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.CreateEmailRequest.Attachment'
                send_before:
                  type:
                  - string
                  - "null"
                  description: Maximum date to deliver the email. (RFC 3339 format)
                  format: date-time
                  example: "2022-03-22T12:34:56.123456Z"
                additional_headers:
                  type: array
                  description: Array of additional headers as key-value.
                  items:
                    $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.CreateEmailRequest.Header'
              required:
              - from
              x-properties-order:
              - from
              - to
              - cc
              - bcc
              - subject
              - text
              - html
              - project_id
              - attachments
              - send_before
              - additional_headers
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "from": "",
              "html": "string",
              "project_id": "6170692e-7363-616c-6577-61792e636f6d",
              "subject": "string",
              "text": "string"
            }' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/emails"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/emails" \
            X-Auth-Token:$SCW_SECRET_KEY \
            from="" \
            html="string" \
            project_id="6170692e-7363-616c-6577-61792e636f6d" \
            subject="string" \
            text="string"
  /transactional-email/v1alpha1/regions/{region}/emails/{email_id}:
    get:
      tags:
      - Emails
      operationId: GetEmail
      summary: Get an email
      description: Retrieve information about a specific email using the `email_id`
        and `region` parameters.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: email_id
        description: ID of the email to retrieve. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Email'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/emails/{email_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/emails/{email_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/emails/{email_id}/cancel:
    post:
      tags:
      - Emails
      operationId: CancelEmail
      summary: Cancel an email
      description: You can cancel the sending of an email if it has not been sent
        yet. You must specify the `region` and the `email_id` of the email you want
        to cancel.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: email_id
        description: ID of the email to cancel. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Email'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/emails/{email_id}/cancel"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/emails/{email_id}/cancel" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/offer-subscriptions:
    get:
      tags:
      - offer-subscriptions
      operationId: ListOfferSubscriptions
      summary: Get information about subscribed offers
      description: Retrieve information about the offers you are subscribed to using
        the `project_id` and `region` parameters.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: query
        name: page
        description: (Optional) Requested page number. Value must be greater or equal
          to 1.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: (Optional) Requested page size. Value must be between 1 and 100.
        schema:
          type: integer
          format: uint32
      - in: query
        name: offer_name
        description: (Optional) Name of the offer associated with the Project.
        schema:
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Offer.Name'
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListOfferSubscriptionsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/offer-subscriptions"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/offer-subscriptions" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - offer-subscriptions
      operationId: UpdateOfferSubscription
      summary: Update a subscribed offer
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.OfferSubscription'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                project_id:
                  type: string
                  description: ID of the Project. (UUID format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                name:
                  description: Name of the offer-subscription.
                  $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Offer.Name'
              x-properties-order:
              - project_id
              - name
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{"project_id":"6170692e-7363-616c-6577-61792e636f6d"}' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/offer-subscriptions"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/offer-subscriptions" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id="6170692e-7363-616c-6577-61792e636f6d"
  /transactional-email/v1alpha1/regions/{region}/offers:
    get:
      tags:
      - offers
      operationId: ListOffers
      summary: List the available offers.
      description: Retrieve the list of the available and free-of-charge offers you
        can subscribe to.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListOffersResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/offers"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/offers" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/pools:
    get:
      tags:
      - pools
      operationId: ListPools
      summary: Get information about a sending pool.
      description: Retrieve information about a sending pool, including its creation
        status and configuration parameters.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: query
        name: page
        description: Requested page number. Value must be greater or equal to 1.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Requested page size. Value must be between 1 and 1000.
        schema:
          type: integer
          format: uint32
      - in: query
        name: project_id
        description: ID of the Project. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListPoolsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/pools?project_id=6170692e-7363-616c-6577-61792e636f6d"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/pools" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==6170692e-7363-616c-6577-61792e636f6d
  /transactional-email/v1alpha1/regions/{region}/project-consumption:
    get:
      tags:
      - Project Consumption
      operationId: GetProjectConsumption
      summary: Get project resource consumption.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: query
        name: project_id
        description: ID of the project. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ProjectConsumption'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/project-consumption?project_id=6170692e-7363-616c-6577-61792e636f6d"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/project-consumption" \
            X-Auth-Token:$SCW_SECRET_KEY \
            project_id==6170692e-7363-616c-6577-61792e636f6d
  /transactional-email/v1alpha1/regions/{region}/project/{project_id}/settings:
    get:
      tags:
      - Project Settings
      operationId: GetProjectSettings
      summary: List project settings
      description: Retrieve the project settings including periodic reports.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: project_id
        description: ID of the project. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ProjectSettings'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/project/{project_id}/settings"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/project/{project_id}/settings" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Project Settings
      operationId: UpdateProjectSettings
      summary: Update project settings
      description: Update the project settings including periodic reports.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: project_id
        description: ID of the project. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ProjectSettings'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                periodic_report:
                  description: Periodic report update details - all fields are optional.
                  $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.UpdateProjectSettingsRequest.UpdatePeriodicReport'
              x-properties-order:
              - periodic_report
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/project/{project_id}/settings"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/project/{project_id}/settings" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/statistics:
    get:
      tags:
      - Statistics
      operationId: GetStatistics
      summary: Email statuses
      description: Get information on your emails' statuses.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: query
        name: project_id
        description: (Optional) Number of emails for this Project. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: domain_id
        description: (Optional) Number of emails sent from this domain (must be coherent
          with the `project_id` and the `organization_id`). (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: since
        description: (Optional) Number of emails created after this date. (RFC 3339
          format)
        schema:
          type: string
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
      - in: query
        name: until
        description: (Optional) Number of emails created before this date. (RFC 3339
          format)
        schema:
          type: string
          format: date-time
          example: "2022-03-22T12:34:56.123456Z"
      - in: query
        name: mail_from
        description: (Optional) Number of emails sent with this sender's email address.
        schema:
          type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Statistics'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/statistics"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/statistics" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/webhooks:
    get:
      tags:
      - Webhooks
      operationId: ListWebhooks
      summary: List Webhooks
      description: Retrieve Webhooks in a specific Project or in a specific Organization
        using the `region` parameter.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: query
        name: order_by
        description: (Optional) List Webhooks corresponding to specific criteria.
        schema:
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListWebhooksRequest.OrderBy'
      - in: query
        name: page
        description: (Optional) Requested page number. Value must be greater or equal
          to 1.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: (Optional) Requested page size. Value must be between 1 and 100.
        schema:
          type: integer
          format: uint32
      - in: query
        name: project_id
        description: (Optional) ID of the Project for which to list the Webhooks.
          (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: organization_id
        description: (Optional) ID of the Organization for which to list the Webhooks.
          (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: domain_id
        description: (Optional) ID of the Domain for which to list the Webhooks. (UUID
          format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListWebhooksResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks" \
            X-Auth-Token:$SCW_SECRET_KEY
    post:
      tags:
      - Webhooks
      operationId: CreateWebhook
      summary: Create a Webhook
      description: Create a new Webhook triggered by a list of event types and pushed
        to a Scaleway SNS ARN.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Webhook'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain_id:
                  type: string
                  description: ID of the Domain to watch for triggering events. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                project_id:
                  type: string
                  description: ID of the project to which the Webhook belongs. (UUID
                    format)
                  example: 6170692e-7363-616c-6577-61792e636f6d
                name:
                  type: string
                  description: Name of the Webhook.
                event_types:
                  type: array
                  description: List of event types that will trigger an event.
                  items:
                    $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.WebhookEvent.Type'
                sns_arn:
                  type: string
                  description: Scaleway SNS ARN topic to push the events to.
              x-properties-order:
              - domain_id
              - project_id
              - name
              - event_types
              - sns_arn
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X POST \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{
              "domain_id": "6170692e-7363-616c-6577-61792e636f6d",
              "name": "string",
              "project_id": "6170692e-7363-616c-6577-61792e636f6d",
              "sns_arn": "string"
            }' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks"
      - lang: HTTPie
        source: |-
          http POST "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks" \
            X-Auth-Token:$SCW_SECRET_KEY \
            domain_id="6170692e-7363-616c-6577-61792e636f6d" \
            name="string" \
            project_id="6170692e-7363-616c-6577-61792e636f6d" \
            sns_arn="string"
  /transactional-email/v1alpha1/regions/{region}/webhooks/{webhook_id}:
    get:
      tags:
      - Webhooks
      operationId: GetWebhook
      summary: Get information about a Webhook
      description: Retrieve information about a specific Webhook using the `webhook_id`
        and `region` parameters.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: webhook_id
        description: ID of the Webhook to check. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Webhook'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks/{webhook_id}"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks/{webhook_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    patch:
      tags:
      - Webhooks
      operationId: UpdateWebhook
      summary: Update a Webhook
      description: Update a Webhook events type, SNS ARN or name.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: webhook_id
        description: ID of the Webhook to update. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.Webhook'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type:
                  - string
                  - "null"
                  description: Name of the Webhook to update.
                event_types:
                  type: array
                  description: List of event types to update.
                  items:
                    $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.WebhookEvent.Type'
                sns_arn:
                  type:
                  - string
                  - "null"
                  description: Scaleway SNS ARN topic to update.
              x-properties-order:
              - name
              - event_types
              - sns_arn
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X PATCH \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            -H "Content-Type: application/json" \
            -d '{}' \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks/{webhook_id}"
      - lang: HTTPie
        source: |-
          http PATCH "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks/{webhook_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
    delete:
      tags:
      - Webhooks
      operationId: DeleteWebhook
      summary: Delete a Webhook
      description: You must specify the Webhook you want to delete by the `region`
        and `webhook_id`. Deleting a Webhook is permanent and cannot be undone.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: webhook_id
        description: ID of the Webhook to delete. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "204":
          description: ""
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X DELETE \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks/{webhook_id}"
      - lang: HTTPie
        source: |-
          http DELETE "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks/{webhook_id}" \
            X-Auth-Token:$SCW_SECRET_KEY
  /transactional-email/v1alpha1/regions/{region}/webhooks/{webhook_id}/events:
    get:
      tags:
      - Webhooks
      operationId: ListWebhookEvents
      summary: List Webhook triggered events
      description: Retrieve the list of Webhook events triggered from a specific Webhook
        or for a specific Project or Organization. You must specify the `region`.
      parameters:
      - in: path
        name: region
        description: The region you want to target
        required: true
        schema:
          type: string
          enum:
          - fr-par
      - in: path
        name: webhook_id
        description: ID of the Webhook linked to the events. (UUID format)
        required: true
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: order_by
        description: (Optional) List Webhook events corresponding to specific criteria.
        schema:
          $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListWebhookEventsRequest.OrderBy'
      - in: query
        name: page
        description: Requested page number. Value must be greater or equal to 1.
        schema:
          type: integer
          format: int32
      - in: query
        name: page_size
        description: Requested page size. Value must be between 1 and 100.
        schema:
          type: integer
          format: uint32
      - in: query
        name: email_id
        description: ID of the email linked to the events. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: event_types
        description: List of event types linked to the events.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.WebhookEvent.Type'
      - in: query
        name: statuses
        description: List of event statuses.
        schema:
          type: array
          items:
            $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.WebhookEvent.Status'
      - in: query
        name: project_id
        description: ID of the webhook Project. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: organization_id
        description: ID of the webhook Organization. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      - in: query
        name: domain_id
        description: ID of the domain to watch for triggering events. (UUID format)
        schema:
          type: string
          example: 6170692e-7363-616c-6577-61792e636f6d
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/scaleway.transactional_email.v1alpha1.ListWebhookEventsResponse'
      security:
      - scaleway: []
      x-codeSamples:
      - lang: cURL
        source: |-
          curl -X GET \
            -H "X-Auth-Token: $SCW_SECRET_KEY" \
            "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks/{webhook_id}/events"
      - lang: HTTPie
        source: |-
          http GET "https://api.scaleway.com/transactional-email/v1alpha1/regions/{region}/webhooks/{webhook_id}/events" \
            X-Auth-Token:$SCW_SECRET_KEY
