inwx

package module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2024 License: MIT Imports: 14 Imported by: 2

README

INWX for libdns

Go Reference Tests

This package implements the libdns interfaces for INWX, allowing you to manage DNS records.

This provider uses the JSON-RPC API, which is described in the official documentation.

Authenticating

To authenticate you need to supply following credentials:

  • Your INWX username
  • Your INWX password
  • A shared secret if you have enabled Mobile TAN (two-factor authentication)

Example

package main

import (
    "context"
    "fmt"

    "github.com/libdns/inwx"
)

func main() {
    provider := &inwx.Provider{
        Username: "<username>",
        Password: "<password>",
        SharedSecret: "<sharedSecret>",
        // Uncomment the following line, if the test environment should be used:
        // EndpointURL: "https://api.ote.domrobot.com/jsonrpc/"
    }
    zone := "example.com."

    records, err := provider.GetRecords(context.TODO(), zone)

    if err != nil {
        fmt.Printf("Error: %s", err.Error())
        return
    }

    fmt.Println(records)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Provider

type Provider struct {
	// Username of your INWX account.
	Username string `json:"username,omitempty"`

	// Password of your INWX account.
	Password string `json:"password,omitempty"`

	// The shared secret is used to generate a TAN if you have activated "Mobile TAN" for your INWX account.
	SharedSecret string `json:"shared_secret,omitempty"`

	// URL of the JSON-RPC API endpoint. It defaults to the production endpoint.
	EndpointURL string `json:"endpoint_url,omitempty"`
	// contains filtered or unexported fields
}

Provider facilitates DNS record manipulation with INWX.

func (*Provider) AppendRecords

func (p *Provider) AppendRecords(ctx context.Context, zone string, records []libdns.Record) ([]libdns.Record, error)

AppendRecords adds records to the zone. It returns the records that were added.

func (*Provider) DeleteRecords

func (p *Provider) DeleteRecords(ctx context.Context, zone string, records []libdns.Record) ([]libdns.Record, error)

DeleteRecords deletes the records from the zone. It returns the records that were deleted.

func (*Provider) GetRecords

func (p *Provider) GetRecords(ctx context.Context, zone string) ([]libdns.Record, error)

GetRecords lists all the records in the zone.

func (*Provider) SetRecords

func (p *Provider) SetRecords(ctx context.Context, zone string, records []libdns.Record) ([]libdns.Record, error)

SetRecords sets the records in the zone, either by updating existing records or creating new ones. It returns the updated records.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL