1. Registry
  2. Packages
  3. Mailgun Provider
  4. API Docs
  5. getDomain
Viewing docs for Mailgun v3.9.0
published on Wednesday, Jul 15, 2026 by Pulumi
mailgun logo
Viewing docs for Mailgun v3.9.0
published on Wednesday, Jul 15, 2026 by Pulumi

    mailgun.Domain provides details about a Mailgun domain.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    import * as mailgun from "@pulumi/mailgun";
    
    const domain = mailgun.getDomain({
        name: "test.example.com",
    });
    const mailgun_mx = new aws.index.Route53Record("mailgun-mx", {
        zoneId: zoneId,
        name: domainMailgun.name,
        type: "MX",
        ttl: 3600,
        records: [
            `${domain.receivingRecords?.[0]?.priority} ${domain.receivingRecords?.[0]?.value}.`,
            `${domain.receivingRecords?.[1]?.priority} ${domain.receivingRecords?.[1]?.value}.`,
        ],
    });
    
    import pulumi
    import pulumi_aws as aws
    import pulumi_mailgun as mailgun
    
    domain = mailgun.get_domain(name="test.example.com")
    mailgun_mx = aws.Route53Record("mailgun-mx",
        zone_id=zone_id,
        name=domain_mailgun.name,
        type=MX,
        ttl=3600,
        records=[
            f{domain.receiving_records[0].priority} {domain.receiving_records[0].value}.,
            f{domain.receiving_records[1].priority} {domain.receiving_records[1].value}.,
        ])
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws"
    	"github.com/pulumi/pulumi-mailgun/sdk/v3/go/mailgun"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		domain, err := mailgun.GetDomain(ctx, &mailgun.LookupDomainArgs{
    			Name: "test.example.com",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = aws.NewRoute53Record(ctx, "mailgun-mx", &aws.Route53RecordArgs{
    			ZoneId: zoneId,
    			Name:   domainMailgun.Name,
    			Type:   "MX",
    			Ttl:    3600,
    			Records: []string{
    				fmt.Sprintf("%v %v.", domain.ReceivingRecords[0].Priority, domain.ReceivingRecords[0].Value),
    				fmt.Sprintf("%v %v.", domain.ReceivingRecords[1].Priority, domain.ReceivingRecords[1].Value),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    using Mailgun = Pulumi.Mailgun;
    
    return await Deployment.RunAsync(() => 
    {
        var domain = Mailgun.GetDomain.Invoke(new()
        {
            Name = "test.example.com",
        });
    
        var mailgun_mx = new Aws.Route53Record("mailgun-mx", new()
        {
            ZoneId = zoneId,
            Name = domainMailgun.Name,
            Type = "MX",
            Ttl = 3600,
            Records = new[]
            {
                $"{domain.Apply(getDomainResult => getDomainResult.ReceivingRecords[0]?.Priority)} {domain.Apply(getDomainResult => getDomainResult.ReceivingRecords[0]?.Value)}.",
                $"{domain.Apply(getDomainResult => getDomainResult.ReceivingRecords[1]?.Priority)} {domain.Apply(getDomainResult => getDomainResult.ReceivingRecords[1]?.Value)}.",
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.mailgun.MailgunFunctions;
    import com.pulumi.mailgun.inputs.GetDomainArgs;
    import com.pulumi.aws.Route53Record;
    import com.pulumi.aws.Route53RecordArgs;
    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) {
            final var domain = MailgunFunctions.getDomain(GetDomainArgs.builder()
                .name("test.example.com")
                .build());
    
            var mailgun_mx = new Route53Record("mailgun-mx", Route53RecordArgs.builder()
                .zoneId(zoneId)
                .name(domainMailgun.name())
                .type("MX")
                .ttl(3600)
                .records(Arrays.asList(            
                    String.format("%s %s.", domain.receivingRecords()[0].priority(),domain.receivingRecords()[0].value()),
                    String.format("%s %s.", domain.receivingRecords()[1].priority(),domain.receivingRecords()[1].value())))
                .build());
    
        }
    }
    
    resources:
      mailgun-mx:
        type: aws:Route53Record
        properties:
          zoneId: ${zoneId}
          name: ${domainMailgun.name}
          type: MX
          ttl: 3600
          records:
            - ${domain.receivingRecords[0].priority} ${domain.receivingRecords[0].value}.
            - ${domain.receivingRecords[1].priority} ${domain.receivingRecords[1].value}.
    variables:
      domain:
        fn::invoke:
          function: mailgun:getDomain
          arguments:
            name: test.example.com
    
    pulumi {
      required_providers {
        aws = {
          source = "pulumi/aws"
        }
        mailgun = {
          source = "pulumi/mailgun"
        }
      }
    }
    
    data "mailgun_getdomain" "domain" {
      name = "test.example.com"
    }
    
    resource "aws_route53record" "mailgun-mx" {
      zone_id = zoneId
      name    = domainMailgun.name
      type    = "MX"
      ttl     = 3600
      records = ["${data.mailgun_getdomain.domain.receivingRecords[0].priority} ${data.mailgun_getdomain.domain.receivingRecords[0].value}.", "${data.mailgun_getdomain.domain.receivingRecords[1].priority} ${data.mailgun_getdomain.domain.receivingRecords[1].value}."]
    }
    

    Using getDomain

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getDomain(args: GetDomainArgs, opts?: InvokeOptions): Promise<GetDomainResult>
    function getDomainOutput(args: GetDomainOutputArgs, opts?: InvokeOutputOptions): Output<GetDomainResult>
    def get_domain(name: Optional[str] = None,
                   region: Optional[str] = None,
                   opts: Optional[InvokeOptions] = None) -> GetDomainResult
    def get_domain_output(name: pulumi.Input[Optional[str]] = None,
                   region: pulumi.Input[Optional[str]] = None,
                   opts: Optional[InvokeOutputOptions] = None) -> Output[GetDomainResult]
    func LookupDomain(ctx *Context, args *LookupDomainArgs, opts ...InvokeOption) (*LookupDomainResult, error)
    func LookupDomainOutput(ctx *Context, args *LookupDomainOutputArgs, opts ...InvokeOption) LookupDomainResultOutput

    > Note: This function is named LookupDomain in the Go SDK.

    public static class GetDomain 
    {
        public static Task<GetDomainResult> InvokeAsync(GetDomainArgs args, InvokeOptions? opts = null)
        public static Output<GetDomainResult> Invoke(GetDomainInvokeArgs args, InvokeOptions? opts = null)
        public static Output<GetDomainResult> Invoke(GetDomainInvokeArgs args, InvokeOutputOptions opts)
    }
    public static CompletableFuture<GetDomainResult> getDomain(GetDomainArgs args, InvokeOptions options)
    public static Output<GetDomainResult> getDomain(GetDomainArgs args, InvokeOptions options)
    public static Output<GetDomainResult> getDomain(GetDomainArgs args, InvokeOutputOptions options)
    
    fn::invoke:
      function: mailgun:index/getDomain:getDomain
      arguments:
        # arguments dictionary
    data "mailgun_get_domain" "name" {
        # arguments
    }

    The following arguments are supported:

    Name string
    The name of the domain.
    Region string
    The region where domain will be created. Default value is us.
    Name string
    The name of the domain.
    Region string
    The region where domain will be created. Default value is us.
    name string
    The name of the domain.
    region string
    The region where domain will be created. Default value is us.
    name String
    The name of the domain.
    region String
    The region where domain will be created. Default value is us.
    name string
    The name of the domain.
    region string
    The region where domain will be created. Default value is us.
    name str
    The name of the domain.
    region str
    The region where domain will be created. Default value is us.
    name String
    The name of the domain.
    region String
    The region where domain will be created. Default value is us.

    getDomain Result

    The following output properties are available:

    ClickTracking bool
    The click tracking setting.
    DkimKeySize int
    DkimSelector string
    ForceDkimAuthority bool
    Id string
    Name string
    The name of the record.
    OpenTracking bool
    The open tracking setting.
    ReceivingRecordsSets List<GetDomainReceivingRecordsSet>
    Region string
    SendingRecordsSets List<GetDomainSendingRecordsSet>
    SmtpLogin string
    The login email for the SMTP server.
    SmtpPassword string
    The password to the SMTP server.
    SpamAction string
    The spam filtering setting.
    UseAutomaticSenderSecurity bool
    WebScheme string
    The tracking web scheme.
    Wildcard bool
    Whether or not the domain will accept email for sub-domains.
    ClickTracking bool
    The click tracking setting.
    DkimKeySize int
    DkimSelector string
    ForceDkimAuthority bool
    Id string
    Name string
    The name of the record.
    OpenTracking bool
    The open tracking setting.
    ReceivingRecordsSets []GetDomainReceivingRecordsSet
    Region string
    SendingRecordsSets []GetDomainSendingRecordsSet
    SmtpLogin string
    The login email for the SMTP server.
    SmtpPassword string
    The password to the SMTP server.
    SpamAction string
    The spam filtering setting.
    UseAutomaticSenderSecurity bool
    WebScheme string
    The tracking web scheme.
    Wildcard bool
    Whether or not the domain will accept email for sub-domains.
    click_tracking bool
    The click tracking setting.
    dkim_key_size number
    dkim_selector string
    force_dkim_authority bool
    id string
    name string
    The name of the record.
    open_tracking bool
    The open tracking setting.
    receiving_records_sets list(object)
    region string
    sending_records_sets list(object)
    smtp_login string
    The login email for the SMTP server.
    smtp_password string
    The password to the SMTP server.
    spam_action string
    The spam filtering setting.
    use_automatic_sender_security bool
    web_scheme string
    The tracking web scheme.
    wildcard bool
    Whether or not the domain will accept email for sub-domains.
    clickTracking Boolean
    The click tracking setting.
    dkimKeySize Integer
    dkimSelector String
    forceDkimAuthority Boolean
    id String
    name String
    The name of the record.
    openTracking Boolean
    The open tracking setting.
    receivingRecordsSets List<GetDomainReceivingRecordsSet>
    region String
    sendingRecordsSets List<GetDomainSendingRecordsSet>
    smtpLogin String
    The login email for the SMTP server.
    smtpPassword String
    The password to the SMTP server.
    spamAction String
    The spam filtering setting.
    useAutomaticSenderSecurity Boolean
    webScheme String
    The tracking web scheme.
    wildcard Boolean
    Whether or not the domain will accept email for sub-domains.
    clickTracking boolean
    The click tracking setting.
    dkimKeySize number
    dkimSelector string
    forceDkimAuthority boolean
    id string
    name string
    The name of the record.
    openTracking boolean
    The open tracking setting.
    receivingRecordsSets GetDomainReceivingRecordsSet[]
    region string
    sendingRecordsSets GetDomainSendingRecordsSet[]
    smtpLogin string
    The login email for the SMTP server.
    smtpPassword string
    The password to the SMTP server.
    spamAction string
    The spam filtering setting.
    useAutomaticSenderSecurity boolean
    webScheme string
    The tracking web scheme.
    wildcard boolean
    Whether or not the domain will accept email for sub-domains.
    click_tracking bool
    The click tracking setting.
    dkim_key_size int
    dkim_selector str
    force_dkim_authority bool
    id str
    name str
    The name of the record.
    open_tracking bool
    The open tracking setting.
    receiving_records_sets Sequence[GetDomainReceivingRecordsSet]
    region str
    sending_records_sets Sequence[GetDomainSendingRecordsSet]
    smtp_login str
    The login email for the SMTP server.
    smtp_password str
    The password to the SMTP server.
    spam_action str
    The spam filtering setting.
    use_automatic_sender_security bool
    web_scheme str
    The tracking web scheme.
    wildcard bool
    Whether or not the domain will accept email for sub-domains.
    clickTracking Boolean
    The click tracking setting.
    dkimKeySize Number
    dkimSelector String
    forceDkimAuthority Boolean
    id String
    name String
    The name of the record.
    openTracking Boolean
    The open tracking setting.
    receivingRecordsSets List<Property Map>
    region String
    sendingRecordsSets List<Property Map>
    smtpLogin String
    The login email for the SMTP server.
    smtpPassword String
    The password to the SMTP server.
    spamAction String
    The spam filtering setting.
    useAutomaticSenderSecurity Boolean
    webScheme String
    The tracking web scheme.
    wildcard Boolean
    Whether or not the domain will accept email for sub-domains.

    Supporting Types

    GetDomainReceivingRecordsSet

    Id string
    Priority string
    The priority of the record.
    RecordType string
    The record type.
    Valid string
    "valid" if the record is valid.
    Value string
    The value of the record.
    Id string
    Priority string
    The priority of the record.
    RecordType string
    The record type.
    Valid string
    "valid" if the record is valid.
    Value string
    The value of the record.
    id string
    priority string
    The priority of the record.
    record_type string
    The record type.
    valid string
    "valid" if the record is valid.
    value string
    The value of the record.
    id String
    priority String
    The priority of the record.
    recordType String
    The record type.
    valid String
    "valid" if the record is valid.
    value String
    The value of the record.
    id string
    priority string
    The priority of the record.
    recordType string
    The record type.
    valid string
    "valid" if the record is valid.
    value string
    The value of the record.
    id str
    priority str
    The priority of the record.
    record_type str
    The record type.
    valid str
    "valid" if the record is valid.
    value str
    The value of the record.
    id String
    priority String
    The priority of the record.
    recordType String
    The record type.
    valid String
    "valid" if the record is valid.
    value String
    The value of the record.

    GetDomainSendingRecordsSet

    Id string
    Name string
    The name of the domain.
    RecordType string
    The record type.
    Valid string
    "valid" if the record is valid.
    Value string
    The value of the record.
    Id string
    Name string
    The name of the domain.
    RecordType string
    The record type.
    Valid string
    "valid" if the record is valid.
    Value string
    The value of the record.
    id string
    name string
    The name of the domain.
    record_type string
    The record type.
    valid string
    "valid" if the record is valid.
    value string
    The value of the record.
    id String
    name String
    The name of the domain.
    recordType String
    The record type.
    valid String
    "valid" if the record is valid.
    value String
    The value of the record.
    id string
    name string
    The name of the domain.
    recordType string
    The record type.
    valid string
    "valid" if the record is valid.
    value string
    The value of the record.
    id str
    name str
    The name of the domain.
    record_type str
    The record type.
    valid str
    "valid" if the record is valid.
    value str
    The value of the record.
    id String
    name String
    The name of the domain.
    recordType String
    The record type.
    valid String
    "valid" if the record is valid.
    value String
    The value of the record.

    Package Details

    Repository
    Mailgun pulumi/pulumi-mailgun
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the mailgun Terraform Provider.
    mailgun logo
    Viewing docs for Mailgun v3.9.0
    published on Wednesday, Jul 15, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial