1. Registry
  2. Packages
  3. Scaleway
  4. API Docs
  5. mailbox
  6. Domain
Viewing docs for Scaleway v1.60.0
published on Saturday, Oct 24, 2026 by pulumiverse
scaleway logo
Viewing docs for Scaleway v1.60.0
published on Saturday, Oct 24, 2026 by pulumiverse

    Creates and manages a Scaleway Mailbox domain.

    A domain is the prerequisite for creating mailboxes. After creation the resource exposes all required DNS records in the dnsRecords attribute so you can delegate them to your DNS provider. The domain status reflects validation progress.

    Note This resource is in alpha and the API is subject to change.

    Example Usage

    Minimal domain

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const main = new scaleway.mailbox.Domain("main", {name: "mail.example.com"});
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    main = scaleway.mailbox.Domain("main", name="mail.example.com")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/mailbox"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := mailbox.NewDomain(ctx, "main", &mailbox.DomainArgs{
    			Name: pulumi.String("mail.example.com"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var main = new Scaleway.Mailbox.Domain("main", new()
        {
            Name = "mail.example.com",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.mailbox.Domain;
    import com.pulumi.scaleway.mailbox.DomainArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var main = new Domain("main", DomainArgs.builder()
                .name("mail.example.com")
                .build());
    
        }
    }
    
    resources:
      main:
        type: scaleway:mailbox:Domain
        properties:
          name: mail.example.com
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
      }
    }
    
    resource "scaleway_mailbox_domain" "main" {
      name = "mail.example.com"
    }
    

    Domain with DNS records configured via Scaleway DNS

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const config = new pulumi.Config();
    const domainName = config.require("domainName");
    const main = new scaleway.mailbox.Domain("main", {name: domainName});
    // Iterate over required DNS records and create them in Scaleway DNS.
    const mailboxDns: {[key: string]: scaleway.domain.Record} = {};
    main.dnsRecords.apply(dnsRecords => {
        for (const range of Object.entries(dnsRecords.filter(rec => rec.level == "required").reduce((__obj, rec) => ({ ...__obj, [`${rec.dnsType}-${rec.dnsName}`]: rec }), {})).sort().map(([k, v]) => ({key: k, value: v}))) {
            mailboxDns[range.key] = new scaleway.domain.Record(`mailbox_dns-${range.key}`, {
                dnsZone: domainName,
                name: range.value.dnsName,
                type: range.value.dnsType,
                data: range.value.dnsValue,
            });
        }
    });
    
    import pulumi
    from typing import Any
    import pulumiverse_scaleway as scaleway
    
    config = pulumi.Config()
    domain_name = config.require("domainName")
    main = scaleway.mailbox.Domain("main", name=domain_name)
    # Iterate over required DNS records and create them in Scaleway DNS.
    mailbox_dns: dict[str, scaleway.domain.Record] = {}
    def create_mailbox_dns(range_body):
        for mailbox_dns_range in [{"key": k, "value": v} for [k, v] in sorted((range_body).items())]:
            mailbox_dns[mailbox_dns_range['key']] = scaleway.domain.Record(f"mailbox_dns-{mailbox_dns_range['key']}",
                dns_zone=domain_name,
                name=mailbox_dns_range["value"].dns_name,
                type=mailbox_dns_range["value"].dns_type,
                data=mailbox_dns_range["value"].dns_value)
    
    main.dns_records.apply(lambda resolved_outputs: create_mailbox_dns({f"{rec.dns_type}-{rec.dns_name}": rec for rec in resolved_outputs['dns_records'] if rec.level == "required"}))
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/domain"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/mailbox"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		cfg := config.New(ctx, "")
    		domainName := cfg.Require("domainName")
    		main, err := mailbox.NewDomain(ctx, "main", &mailbox.DomainArgs{
    			Name: pulumi.String(domainName),
    		})
    		if err != nil {
    			return err
    		}
    		// Iterate over required DNS records and create them in Scaleway DNS.
    		forResult0 := mailbox.DomainDnsRecordMap{}
    		for _, rec := range dnsRecords {
    			if rec.Level == "required" {
    				forResult0[fmt.Sprintf("%v-%v", rec.DnsType, rec.DnsName)] = rec
    			}
    		}
    		var mailboxDns []*domain.Record
    		for key0, val0 := range map[string]mailbox.DomainDnsRecord(main.DnsRecords.ApplyT(func(dnsRecords []mailbox.DomainDnsRecord) (map[string]mailbox.DomainDnsRecord, error) {
    			return forResult0, nil
    		}).(pulumi.MapOutput)) {
    			__res, err := domain.NewRecord(ctx, fmt.Sprintf("mailbox_dns-%v", key0), &domain.RecordArgs{
    				DnsZone: pulumi.String(domainName),
    				Name:    pulumi.String(val0),
    				Type:    pulumi.String(val0),
    				Data:    pulumi.String(val0),
    			})
    			if err != nil {
    				return err
    			}
    			mailboxDns = append(mailboxDns, __res)
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var config = new Config();
        var domainName = config.Require("domainName");
        var main = new Scaleway.Mailbox.Domain("main", new()
        {
            Name = domainName,
        });
    
        // Iterate over required DNS records and create them in Scaleway DNS.
        var mailboxDns = new List<Scaleway.Domain.Record>();
        foreach (var range in main.DnsRecords.Apply(dnsRecords => dnsRecords.ToDictionary(item => {
            var rec = item.Value;
            return $"{rec.DnsType}-{rec.DnsName}";
        }, item => {
            var rec = item.Value;
            return rec;
        })).Select(pair => new { pair.Key, pair.Value }))
        {
            mailboxDns.Add(new Scaleway.Domain.Record($"mailbox_dns-{range.Key}", new()
            {
                DnsZone = domainName,
                Name = range.Value.DnsName,
                Type = range.Value.DnsType,
                Data = range.Value.DnsValue,
            }));
        }
    });
    
    Example coming soon!
    
    configuration:
      domainName:
        type: string
    resources:
      main:
        type: scaleway:mailbox:Domain
        properties:
          name: ${domainName}
      # Iterate over required DNS records and create them in Scaleway DNS.
      mailboxDns:
        type: scaleway:domain:Record
        name: mailbox_dns
        properties:
          dnsZone: ${domainName}
          name: ${range.value.dnsName}
          type: ${range.value.dnsType}
          data: ${range.value.dnsValue}
        options: {}
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
      }
    }
    
    resource "scaleway_mailbox_domain" "main" {
      name = var.domainName
    }
    # Iterate over required DNS records and create them in Scaleway DNS.
    resource "scaleway_domain_record" "mailbox_dns" {
      for_each = {for rec in scaleway_mailbox_domain.main.dns_records :"${rec.dnsType}-${rec.dnsName}"=> rec if rec.level == "required"}
      dns_zone = var.domainName
      name     = each.value.dnsName
      type     = each.value.dnsType
      data     = each.value.dnsValue
    }
    variable "domainName" {
      type = string
    }
    

    Domain in a specific project

    import * as pulumi from "@pulumi/pulumi";
    import * as scaleway from "@pulumiverse/scaleway";
    
    const mailProject = new scaleway.account.Project("mail_project", {name: "mail-project"});
    const projectDomain = new scaleway.mailbox.Domain("project_domain", {
        name: "mail.example.com",
        projectId: mailProject.id,
    });
    
    import pulumi
    import pulumiverse_scaleway as scaleway
    
    mail_project = scaleway.account.Project("mail_project", name="mail-project")
    project_domain = scaleway.mailbox.Domain("project_domain",
        name="mail.example.com",
        project_id=mail_project.id)
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/account"
    	"github.com/pulumiverse/pulumi-scaleway/sdk/go/scaleway/mailbox"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		mailProject, err := account.NewProject(ctx, "mail_project", &account.ProjectArgs{
    			Name: pulumi.String("mail-project"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = mailbox.NewDomain(ctx, "project_domain", &mailbox.DomainArgs{
    			Name:      pulumi.String("mail.example.com"),
    			ProjectId: mailProject.ID().ToIDOutput().ToStringOutput(),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Scaleway = Pulumiverse.Scaleway;
    
    return await Deployment.RunAsync(() => 
    {
        var mailProject = new Scaleway.Account.Project("mail_project", new()
        {
            Name = "mail-project",
        });
    
        var projectDomain = new Scaleway.Mailbox.Domain("project_domain", new()
        {
            Name = "mail.example.com",
            ProjectId = mailProject.Id,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.scaleway.account.Project;
    import com.pulumi.scaleway.account.ProjectArgs;
    import com.pulumi.scaleway.mailbox.Domain;
    import com.pulumi.scaleway.mailbox.DomainArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var mailProject = new Project("mailProject", ProjectArgs.builder()
                .name("mail-project")
                .build());
    
            var projectDomain = new Domain("projectDomain", DomainArgs.builder()
                .name("mail.example.com")
                .projectId(mailProject.id())
                .build());
    
        }
    }
    
    resources:
      mailProject:
        type: scaleway:account:Project
        name: mail_project
        properties:
          name: mail-project
      projectDomain:
        type: scaleway:mailbox:Domain
        name: project_domain
        properties:
          name: mail.example.com
          projectId: ${mailProject.id}
    
    pulumi {
      required_providers {
        scaleway = {
          source = "pulumi/scaleway"
        }
      }
    }
    
    resource "scaleway_account_project" "mail_project" {
      name = "mail-project"
    }
    resource "scaleway_mailbox_domain" "project_domain" {
      name       = "mail.example.com"
      project_id = scaleway_account_project.mail_project.id
    }
    

    Create Domain Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Domain(name: string, args?: DomainArgs, opts?: CustomResourceOptions);
    @overload
    def Domain(resource_name: str,
               args: Optional[DomainArgs] = None,
               opts: Optional[ResourceOptions] = None)
    
    @overload
    def Domain(resource_name: str,
               opts: Optional[ResourceOptions] = None,
               name: Optional[str] = None,
               project_id: Optional[str] = None)
    func NewDomain(ctx *Context, name string, args *DomainArgs, opts ...ResourceOption) (*Domain, error)
    public Domain(string name, DomainArgs? args = null, CustomResourceOptions? opts = null)
    public Domain(String name, DomainArgs args)
    public Domain(String name, DomainArgs args, CustomResourceOptions options)
    
    type: scaleway:mailbox:Domain
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "scaleway_mailbox_domain" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args DomainArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args DomainArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args DomainArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args DomainArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args DomainArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var exampledomainResourceResourceFromMailboxdomain = new Scaleway.Mailbox.Domain("exampledomainResourceResourceFromMailboxdomain", new()
    {
        Name = "string",
        ProjectId = "string",
    });
    
    example, err := mailbox.NewDomain(ctx, "exampledomainResourceResourceFromMailboxdomain", &mailbox.DomainArgs{
    	Name:      pulumi.String("string"),
    	ProjectId: pulumi.String("string"),
    })
    
    resource "scaleway_mailbox_domain" "exampledomainResourceResourceFromMailboxdomain" {
      lifecycle {
        create_before_destroy = true
      }
      name       = "string"
      project_id = "string"
    }
    
    var exampledomainResourceResourceFromMailboxdomain = new com.pulumi.scaleway.mailbox.Domain("exampledomainResourceResourceFromMailboxdomain", com.pulumi.scaleway.mailbox.DomainArgs.builder()
        .name("string")
        .projectId("string")
        .build());
    
    exampledomain_resource_resource_from_mailboxdomain = scaleway.mailbox.Domain("exampledomainResourceResourceFromMailboxdomain",
        name="string",
        project_id="string")
    
    const exampledomainResourceResourceFromMailboxdomain = new scaleway.mailbox.Domain("exampledomainResourceResourceFromMailboxdomain", {
        name: "string",
        projectId: "string",
    });
    
    type: scaleway:mailbox:Domain
    properties:
        name: string
        projectId: string
    

    Domain Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Domain resource accepts the following input properties:

    Name string
    Fully qualified domain name (e.g. mail.example.com).
    ProjectId string

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    Name string
    Fully qualified domain name (e.g. mail.example.com).
    ProjectId string

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    name string
    Fully qualified domain name (e.g. mail.example.com).
    project_id string

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    name String
    Fully qualified domain name (e.g. mail.example.com).
    projectId String

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    name string
    Fully qualified domain name (e.g. mail.example.com).
    projectId string

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    name str
    Fully qualified domain name (e.g. mail.example.com).
    project_id str

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    name String
    Fully qualified domain name (e.g. mail.example.com).
    projectId String

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Domain resource produces the following output properties:

    CreatedAt string
    Date and time of domain creation (RFC 3339 format).
    DnsRecords List<Pulumiverse.Scaleway.Mailbox.Outputs.DomainDnsRecord>
    List of DNS records to configure in your DNS zone. Each entry has:
    Id string
    The provider-assigned unique ID for this managed resource.
    ImapUrl string
    IMAP server URL for configuring email clients.
    MailboxTotalCount int
    Number of mailboxes currently provisioned on this domain.
    Pop3Url string
    POP3 server URL for configuring email clients.
    SmtpUrl string
    SMTP server URL for configuring email clients.
    Status string
    Validation status (valid, invalid, notFound, validating).
    UpdatedAt string
    Date and time of last update (RFC 3339 format).
    WebmailUrl string
    URL of the domain's webmail interface.
    CreatedAt string
    Date and time of domain creation (RFC 3339 format).
    DnsRecords []DomainDnsRecord
    List of DNS records to configure in your DNS zone. Each entry has:
    Id string
    The provider-assigned unique ID for this managed resource.
    ImapUrl string
    IMAP server URL for configuring email clients.
    MailboxTotalCount int
    Number of mailboxes currently provisioned on this domain.
    Pop3Url string
    POP3 server URL for configuring email clients.
    SmtpUrl string
    SMTP server URL for configuring email clients.
    Status string
    Validation status (valid, invalid, notFound, validating).
    UpdatedAt string
    Date and time of last update (RFC 3339 format).
    WebmailUrl string
    URL of the domain's webmail interface.
    created_at string
    Date and time of domain creation (RFC 3339 format).
    dns_records list(object)
    List of DNS records to configure in your DNS zone. Each entry has:
    id string
    The provider-assigned unique ID for this managed resource.
    imap_url string
    IMAP server URL for configuring email clients.
    mailbox_total_count number
    Number of mailboxes currently provisioned on this domain.
    pop3_url string
    POP3 server URL for configuring email clients.
    smtp_url string
    SMTP server URL for configuring email clients.
    status string
    Validation status (valid, invalid, notFound, validating).
    updated_at string
    Date and time of last update (RFC 3339 format).
    webmail_url string
    URL of the domain's webmail interface.
    createdAt String
    Date and time of domain creation (RFC 3339 format).
    dnsRecords List<DomainDnsRecord>
    List of DNS records to configure in your DNS zone. Each entry has:
    id String
    The provider-assigned unique ID for this managed resource.
    imapUrl String
    IMAP server URL for configuring email clients.
    mailboxTotalCount Integer
    Number of mailboxes currently provisioned on this domain.
    pop3Url String
    POP3 server URL for configuring email clients.
    smtpUrl String
    SMTP server URL for configuring email clients.
    status String
    Validation status (valid, invalid, notFound, validating).
    updatedAt String
    Date and time of last update (RFC 3339 format).
    webmailUrl String
    URL of the domain's webmail interface.
    createdAt string
    Date and time of domain creation (RFC 3339 format).
    dnsRecords DomainDnsRecord[]
    List of DNS records to configure in your DNS zone. Each entry has:
    id string
    The provider-assigned unique ID for this managed resource.
    imapUrl string
    IMAP server URL for configuring email clients.
    mailboxTotalCount number
    Number of mailboxes currently provisioned on this domain.
    pop3Url string
    POP3 server URL for configuring email clients.
    smtpUrl string
    SMTP server URL for configuring email clients.
    status string
    Validation status (valid, invalid, notFound, validating).
    updatedAt string
    Date and time of last update (RFC 3339 format).
    webmailUrl string
    URL of the domain's webmail interface.
    created_at str
    Date and time of domain creation (RFC 3339 format).
    dns_records Sequence[DomainDnsRecord]
    List of DNS records to configure in your DNS zone. Each entry has:
    id str
    The provider-assigned unique ID for this managed resource.
    imap_url str
    IMAP server URL for configuring email clients.
    mailbox_total_count int
    Number of mailboxes currently provisioned on this domain.
    pop3_url str
    POP3 server URL for configuring email clients.
    smtp_url str
    SMTP server URL for configuring email clients.
    status str
    Validation status (valid, invalid, notFound, validating).
    updated_at str
    Date and time of last update (RFC 3339 format).
    webmail_url str
    URL of the domain's webmail interface.
    createdAt String
    Date and time of domain creation (RFC 3339 format).
    dnsRecords List<Property Map>
    List of DNS records to configure in your DNS zone. Each entry has:
    id String
    The provider-assigned unique ID for this managed resource.
    imapUrl String
    IMAP server URL for configuring email clients.
    mailboxTotalCount Number
    Number of mailboxes currently provisioned on this domain.
    pop3Url String
    POP3 server URL for configuring email clients.
    smtpUrl String
    SMTP server URL for configuring email clients.
    status String
    Validation status (valid, invalid, notFound, validating).
    updatedAt String
    Date and time of last update (RFC 3339 format).
    webmailUrl String
    URL of the domain's webmail interface.

    Look up Existing Domain Resource

    Get an existing Domain resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: DomainState, opts?: CustomResourceOptions): Domain
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            created_at: Optional[str] = None,
            dns_records: Optional[Sequence[DomainDnsRecordArgs]] = None,
            imap_url: Optional[str] = None,
            mailbox_total_count: Optional[int] = None,
            name: Optional[str] = None,
            pop3_url: Optional[str] = None,
            project_id: Optional[str] = None,
            smtp_url: Optional[str] = None,
            status: Optional[str] = None,
            updated_at: Optional[str] = None,
            webmail_url: Optional[str] = None) -> Domain
    func GetDomain(ctx *Context, name string, id IDInput, state *DomainState, opts ...ResourceOption) (*Domain, error)
    public static Domain Get(string name, Input<string> id, DomainState? state, CustomResourceOptions? opts = null)
    public static Domain get(String name, Output<String> id, DomainState state, CustomResourceOptions options)
    resources:  _:    type: scaleway:mailbox:Domain    get:      id: ${id}
    import {
      to = scaleway_mailbox_domain.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    CreatedAt string
    Date and time of domain creation (RFC 3339 format).
    DnsRecords List<Pulumiverse.Scaleway.Mailbox.Inputs.DomainDnsRecord>
    List of DNS records to configure in your DNS zone. Each entry has:
    ImapUrl string
    IMAP server URL for configuring email clients.
    MailboxTotalCount int
    Number of mailboxes currently provisioned on this domain.
    Name string
    Fully qualified domain name (e.g. mail.example.com).
    Pop3Url string
    POP3 server URL for configuring email clients.
    ProjectId string

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    SmtpUrl string
    SMTP server URL for configuring email clients.
    Status string
    Validation status (valid, invalid, notFound, validating).
    UpdatedAt string
    Date and time of last update (RFC 3339 format).
    WebmailUrl string
    URL of the domain's webmail interface.
    CreatedAt string
    Date and time of domain creation (RFC 3339 format).
    DnsRecords []DomainDnsRecordArgs
    List of DNS records to configure in your DNS zone. Each entry has:
    ImapUrl string
    IMAP server URL for configuring email clients.
    MailboxTotalCount int
    Number of mailboxes currently provisioned on this domain.
    Name string
    Fully qualified domain name (e.g. mail.example.com).
    Pop3Url string
    POP3 server URL for configuring email clients.
    ProjectId string

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    SmtpUrl string
    SMTP server URL for configuring email clients.
    Status string
    Validation status (valid, invalid, notFound, validating).
    UpdatedAt string
    Date and time of last update (RFC 3339 format).
    WebmailUrl string
    URL of the domain's webmail interface.
    created_at string
    Date and time of domain creation (RFC 3339 format).
    dns_records list(object)
    List of DNS records to configure in your DNS zone. Each entry has:
    imap_url string
    IMAP server URL for configuring email clients.
    mailbox_total_count number
    Number of mailboxes currently provisioned on this domain.
    name string
    Fully qualified domain name (e.g. mail.example.com).
    pop3_url string
    POP3 server URL for configuring email clients.
    project_id string

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    smtp_url string
    SMTP server URL for configuring email clients.
    status string
    Validation status (valid, invalid, notFound, validating).
    updated_at string
    Date and time of last update (RFC 3339 format).
    webmail_url string
    URL of the domain's webmail interface.
    createdAt String
    Date and time of domain creation (RFC 3339 format).
    dnsRecords List<DomainDnsRecord>
    List of DNS records to configure in your DNS zone. Each entry has:
    imapUrl String
    IMAP server URL for configuring email clients.
    mailboxTotalCount Integer
    Number of mailboxes currently provisioned on this domain.
    name String
    Fully qualified domain name (e.g. mail.example.com).
    pop3Url String
    POP3 server URL for configuring email clients.
    projectId String

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    smtpUrl String
    SMTP server URL for configuring email clients.
    status String
    Validation status (valid, invalid, notFound, validating).
    updatedAt String
    Date and time of last update (RFC 3339 format).
    webmailUrl String
    URL of the domain's webmail interface.
    createdAt string
    Date and time of domain creation (RFC 3339 format).
    dnsRecords DomainDnsRecord[]
    List of DNS records to configure in your DNS zone. Each entry has:
    imapUrl string
    IMAP server URL for configuring email clients.
    mailboxTotalCount number
    Number of mailboxes currently provisioned on this domain.
    name string
    Fully qualified domain name (e.g. mail.example.com).
    pop3Url string
    POP3 server URL for configuring email clients.
    projectId string

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    smtpUrl string
    SMTP server URL for configuring email clients.
    status string
    Validation status (valid, invalid, notFound, validating).
    updatedAt string
    Date and time of last update (RFC 3339 format).
    webmailUrl string
    URL of the domain's webmail interface.
    created_at str
    Date and time of domain creation (RFC 3339 format).
    dns_records Sequence[DomainDnsRecordArgs]
    List of DNS records to configure in your DNS zone. Each entry has:
    imap_url str
    IMAP server URL for configuring email clients.
    mailbox_total_count int
    Number of mailboxes currently provisioned on this domain.
    name str
    Fully qualified domain name (e.g. mail.example.com).
    pop3_url str
    POP3 server URL for configuring email clients.
    project_id str

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    smtp_url str
    SMTP server URL for configuring email clients.
    status str
    Validation status (valid, invalid, notFound, validating).
    updated_at str
    Date and time of last update (RFC 3339 format).
    webmail_url str
    URL of the domain's webmail interface.
    createdAt String
    Date and time of domain creation (RFC 3339 format).
    dnsRecords List<Property Map>
    List of DNS records to configure in your DNS zone. Each entry has:
    imapUrl String
    IMAP server URL for configuring email clients.
    mailboxTotalCount Number
    Number of mailboxes currently provisioned on this domain.
    name String
    Fully qualified domain name (e.g. mail.example.com).
    pop3Url String
    POP3 server URL for configuring email clients.
    projectId String

    projectId) The ID of the project the domain is associated with. Changing this forces a new domain.

    Note Mailbox domains cannot be updated in place. Changes to name or projectId force resource replacement.

    smtpUrl String
    SMTP server URL for configuring email clients.
    status String
    Validation status (valid, invalid, notFound, validating).
    updatedAt String
    Date and time of last update (RFC 3339 format).
    webmailUrl String
    URL of the domain's webmail interface.

    Supporting Types

    DomainDnsRecord, DomainDnsRecordArgs

    DnsName string
    Fully qualified name for this record.
    DnsType string
    Record type (TXT, MX, CNAME, SRV…).
    DnsValue string
    Value to set for this record.
    Error string
    Error detail when the record is invalid or not found.
    Level string
    Requirement level (required, recommended, optional).
    Status string
    Validation status (valid, invalid, notFound, validating).
    DnsName string
    Fully qualified name for this record.
    DnsType string
    Record type (TXT, MX, CNAME, SRV…).
    DnsValue string
    Value to set for this record.
    Error string
    Error detail when the record is invalid or not found.
    Level string
    Requirement level (required, recommended, optional).
    Status string
    Validation status (valid, invalid, notFound, validating).
    dns_name string
    Fully qualified name for this record.
    dns_type string
    Record type (TXT, MX, CNAME, SRV…).
    dns_value string
    Value to set for this record.
    error string
    Error detail when the record is invalid or not found.
    level string
    Requirement level (required, recommended, optional).
    status string
    Validation status (valid, invalid, notFound, validating).
    dnsName String
    Fully qualified name for this record.
    dnsType String
    Record type (TXT, MX, CNAME, SRV…).
    dnsValue String
    Value to set for this record.
    error String
    Error detail when the record is invalid or not found.
    level String
    Requirement level (required, recommended, optional).
    status String
    Validation status (valid, invalid, notFound, validating).
    dnsName string
    Fully qualified name for this record.
    dnsType string
    Record type (TXT, MX, CNAME, SRV…).
    dnsValue string
    Value to set for this record.
    error string
    Error detail when the record is invalid or not found.
    level string
    Requirement level (required, recommended, optional).
    status string
    Validation status (valid, invalid, notFound, validating).
    dns_name str
    Fully qualified name for this record.
    dns_type str
    Record type (TXT, MX, CNAME, SRV…).
    dns_value str
    Value to set for this record.
    error str
    Error detail when the record is invalid or not found.
    level str
    Requirement level (required, recommended, optional).
    status str
    Validation status (valid, invalid, notFound, validating).
    dnsName String
    Fully qualified name for this record.
    dnsType String
    Record type (TXT, MX, CNAME, SRV…).
    dnsValue String
    Value to set for this record.
    error String
    Error detail when the record is invalid or not found.
    level String
    Requirement level (required, recommended, optional).
    status String
    Validation status (valid, invalid, notFound, validating).

    Import

    Mailbox domains can be imported using their UUID:

    $ pulumi import scaleway:mailbox/domain:Domain example 11111111-1111-1111-1111-111111111111
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    scaleway pulumiverse/pulumi-scaleway
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the scaleway Terraform Provider.
    scaleway logo
    Viewing docs for Scaleway v1.60.0
    published on Saturday, Oct 24, 2026 by pulumiverse

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial