Class: Axene::Mailer::Resources::Domains

Inherits:
Object
  • Object
show all
Defined in:
lib/axene/mailer/resources/domains.rb

Overview

The domains resource: register, verify, inspect, and transfer sending domains. Accessed as client.domains.

Instance Method Summary collapse

Constructor Details

#initialize(transport) ⇒ Domains

Returns a new instance of Domains.

Parameters:



10
11
12
# File 'lib/axene/mailer/resources/domains.rb', line 10

def initialize(transport)
  @transport = transport
end

Instance Method Details

#check(name) ⇒ Hash

Check whether a domain name already exists in your account.

Parameters:

  • name (String)

Returns:

  • (Hash)


116
117
118
# File 'lib/axene/mailer/resources/domains.rb', line 116

def check(name)
  @transport.request(:get, "/v1/domains/check/#{Util.escape(name)}")
end

#check_availability(name) ⇒ Hash

Check whether a domain name is available to add (checks public DNS).

Parameters:

  • name (String)

Returns:

  • (Hash)


108
109
110
# File 'lib/axene/mailer/resources/domains.rb', line 108

def check_availability(name)
  @transport.request(:get, "/v1/domains/check-availability", query: { name: name })
end

#create(name) ⇒ Hash

Register a new sending domain. Returns the DNS records to publish.

Parameters:

  • name (String)

Returns:

  • (Hash)


25
26
27
# File 'lib/axene/mailer/resources/domains.rb', line 25

def create(name)
  @transport.request(:post, "/v1/domains/", body: { name: name })
end

#delete(id) ⇒ nil

Delete a domain.

Parameters:

  • id (String)

Returns:

  • (nil)


41
42
43
# File 'lib/axene/mailer/resources/domains.rb', line 41

def delete(id)
  @transport.request(:delete, "/v1/domains/#{Util.escape(id)}")
end

#diagnose(id) ⇒ Hash

Diagnose configuration issues and get a health score.

Parameters:

  • id (String)

Returns:

  • (Hash)


65
66
67
# File 'lib/axene/mailer/resources/domains.rb', line 65

def diagnose(id)
  @transport.request(:get, "/v1/domains/#{Util.escape(id)}/diagnose")
end

#get(id) ⇒ Hash

Fetch a domain with its DKIM selector and DNS records.

Parameters:

  • id (String)

Returns:

  • (Hash)


33
34
35
# File 'lib/axene/mailer/resources/domains.rb', line 33

def get(id)
  @transport.request(:get, "/v1/domains/#{Util.escape(id)}")
end

#health(id) ⇒ Hash

Run live DNS health checks (DKIM, SPF, DMARC, return-path, MX).

Parameters:

  • id (String)

Returns:

  • (Hash)


57
58
59
# File 'lib/axene/mailer/resources/domains.rb', line 57

def health(id)
  @transport.request(:get, "/v1/domains/#{Util.escape(id)}/health")
end

#listArray<Hash>

List your sending domains and their verification status.

Returns:

  • (Array<Hash>)


17
18
19
# File 'lib/axene/mailer/resources/domains.rb', line 17

def list
  @transport.request(:get, "/v1/domains/")
end

#mx_status(id) ⇒ Hash

Current MX status for inbound/forwarding (shape varies by provider).

Parameters:

  • id (String)

Returns:

  • (Hash)


73
74
75
# File 'lib/axene/mailer/resources/domains.rb', line 73

def mx_status(id)
  @transport.request(:get, "/v1/domains/#{Util.escape(id)}/mx-status")
end

#published_records(id) ⇒ Hash

The values currently published in DNS for each of the domain’s records.

Parameters:

  • id (String)

Returns:

  • (Hash)


81
82
83
# File 'lib/axene/mailer/resources/domains.rb', line 81

def published_records(id)
  @transport.request(:get, "/v1/domains/#{Util.escape(id)}/published-records")
end

#rotate_dkim(id) ⇒ Hash

Rotate the domain’s DKIM key, returning the new record to publish.

Parameters:

  • id (String)

Returns:

  • (Hash)


89
90
91
# File 'lib/axene/mailer/resources/domains.rb', line 89

def rotate_dkim(id)
  @transport.request(:post, "/v1/domains/#{Util.escape(id)}/rotate-dkim")
end

#transfer(id, target_email:, note: nil) ⇒ Hash

Initiate a transfer of this domain to another Axene account.

Parameters:

  • id (String)
  • target_email (String)
  • note (String, nil) (defaults to: nil)

Returns:

  • (Hash)


99
100
101
102
# File 'lib/axene/mailer/resources/domains.rb', line 99

def transfer(id, target_email:, note: nil)
  @transport.request(:post, "/v1/domains/#{Util.escape(id)}/transfer",
                     body: { target_email: target_email, note: note })
end

#verify(id) ⇒ Hash

Re-check DNS and verify the domain.

Parameters:

  • id (String)

Returns:

  • (Hash)


49
50
51
# File 'lib/axene/mailer/resources/domains.rb', line 49

def verify(id)
  @transport.request(:post, "/v1/domains/#{Util.escape(id)}/verify")
end