cedexis

package
v0.0.0-...-4d0ddd0 Latest Latest
Warning

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

Go to latest
Published: Jun 27, 2019 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ApplicationTypeJavascriptV1  = "V1_JS"
	ApplicationTypeOptimalRTT    = "RT_HTTP_PERFORMANCE"
	ApplicationTypeFailover      = "STATIC_FAILOVER"
	ApplicationTypeRoundRobin    = "RR_PURE_WEIGHTED"
	ApplicationTypeStaticRouting = "STATIC_ROUTING"
	ApplicationTypeThroughput    = "KBPS_HTTP_PERFORMANCE"
)
View Source
const (
	// RecordTypeA is for IPv4 addresses
	RecordTypeA string = "A"

	// RecordTypeAAAA is for IPv6 addresses
	RecordTypeAAAA = "AAAA"

	// RecordTypeTXT is for text records
	RecordTypeTXT = "TXT"

	// RecordTypeSPF is for Sender Policy Framework records
	RecordTypeSPF = "SPF"

	// RecordTypePTR is for reverse DNS lookups
	RecordTypePTR = "PTR"

	// RecordTypeCNAME is for canonical name records
	RecordTypeCNAME = "CNAME"

	// RecordTypeNS is for domain delegation (nameserver) records
	RecordTypeNS = "NS"

	// RecordTypeOpenmix is for Openmix applications
	RecordTypeOpenmix = "OPX"

	// RecordTypeCAA is for Certification Authority Authorization records
	RecordTypeCAA = "CAA"

	// RecordTypeSRV is for defining servers for specified services
	RecordTypeSRV = "SRV"

	// RecordTypeMX is for mail server records
	RecordTypeMX = "MX"
)
View Source
const (
	ApplicationProtocolDns = "dns"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AddressesResponse

type AddressesResponse struct {
	Addresses []string `json:"addresses"`
}

AddressesResponse is used for records of type A and AAAA

type Alert

type Alert struct {
	ID                *int      `json:"id,omitempty"`
	Name              *string   `json:"name,omitempty"`
	Type              *string   `json:"type,omitempty"`
	Timing            *string   `json:"timing,omitempty"`
	Threshold         *int      `json:"threshold,omitempty"`
	Sensitivity       *int      `json:"sensitivity,omitempty"`
	ProbeType         *int      `json:"probeType,omitempty"`
	Version           *int      `json:"version,omitempty"`
	Debounce          *int      `json:"debounce,omitempty"`
	CompareOperator   *string   `json:"compareOperator,omitempty"`
	Enabled           *bool     `json:"enabled,omitempty"`
	DisabledMinutes   *int      `json:"disabledMinutes,omitempty"`
	Locations         *[]string `json:"locations,omitempty"`
	Platform          *int      `json:"platform,omitempty"`
	Emails            *[]string `json:"emails,omitempty"`
	Peers             *[]int    `json:"peers,omitempty"`
	EventsLast24Hours *int      `json:"eventsLast24Hours,omitempty"`
	CountryEvents     *[]int    `json:"countryEvents,omitempty"`
	ASNEvents         *[]int    `json:"asnEvents,omitempty"`
	RefererURI        *string   `json:"refererUri,omitempty"`
	Statistic         *string   `json:"statistic,omitempty"`
	DataSource        *string   `json:"dataSource,omitempty"`
	AutoFill          *int      `json:"autoFill,omitempty"`
	NotifyChange      *string   `json:"notifyChange,omitempty"`
}

Alert represents a configured alert.

func (*Alert) DiffersFrom

func (a *Alert) DiffersFrom(other *Alert) bool

DiffersFrom indicates if any fields in this config (that are non-nil) differ from another config.

type AlertChange

type AlertChange int

AlertChange is an enum of which events trigger the alert.

const (
	// AlertChangeAny alerts on up and down events.
	AlertChangeAny AlertChange = iota

	// AlertChangeToUp alerts on up events.
	AlertChangeToUp

	// AlertChangeToDown alerts on down events.
	AlertChangeToDown
)

func ParseAlertChange

func ParseAlertChange(val string) (AlertChange, error)

ParseAlertChange parses an alert type 'any','up' or 'down' to enum value

func (AlertChange) String

func (c AlertChange) String() string

type AlertTiming

type AlertTiming int

AlertTiming is an enum of when to trigger the alert.

const (
	// AlertTimingImmediate triggers the alert immediately.
	AlertTimingImmediate AlertTiming = iota

	// AlertTimingSummary triggers the alert as a daily summary.
	AlertTimingSummary

	// AlertTimingBoth triggers the alert immediately and provides daily summary.
	AlertTimingBoth
)

func ParseAlertTiming

func ParseAlertTiming(val string) (AlertTiming, error)

ParseAlertTiming parses an alert type 'immediate','summary' or 'both' to enum value

func (AlertTiming) String

func (t AlertTiming) String() string

type AlertType

type AlertType int

AlertType is the type of alert.

const (
	// AlertTypeSonar indicates the alert is triggered by Sonar
	AlertTypeSonar AlertType = iota

	// AlertTypeRadar indicates the alert is triggered by Radar
	AlertTypeRadar
)

func ParseAlertType

func ParseAlertType(val string) (AlertType, error)

ParseAlertType parses an alert type 'sonar' or 'radar' to enum value

func (AlertType) String

func (at AlertType) String() string

type AppResponse

type AppResponse struct {
	AppID int `json:"appId"`
}

AppResponse is used for records of type OPX

type Application

type Application struct {
	ID                    *int                   `json:"id,omitempty"`
	Name                  *string                `json:"name,omitempty"`
	Description           *string                `json:"description,omitempty"`
	Enabled               *bool                  `json:"enabled,omitempty"`
	RelativePercent       *float64               `json:"relativePercent,omitempty"`
	Version               *int                   `json:"version,omitempty"`
	AppData               *string                `json:"appData,omitempty"`
	Created               *string                `json:"created,omitempty"`
	Modified              *string                `json:"modified,omitempty"`
	Status                *string                `json:"status,omitempty"`
	Tags                  *[]string              `json:"tags,omitempty"`
	Protocol              *string                `json:"protocol,omitempty"`
	Type                  *string                `json:"type,omitempty"`
	ModifiedBy            *string                `json:"modifiedBy,omitempty"`
	AvailabilityThreshold *int                   `json:"availabilityThreshold,omitempty"`
	UseRadarAvailability  *bool                  `json:"useRadarAvailability,omitempty"`
	Platforms             *[]ApplicationPlatform `json:"platforms,omitempty"`
	FallbackCname         *string                `json:"fallbackCname,omitempty"`
	Cname                 *string                `json:"cname,omitempty"`
	CorsHeader            *string                `json:"corsHeader,omitempty"`
	EDNSEnabled           *bool                  `json:"eDNSEnabled,omitempty"`
	TTL                   *int                   `json:"ttl,omitempty"`
	HOPXSecureApp         *bool                  `json:"hopxSecureApp,omitempty"`
}

Application represents an Openmix application

func NewApplication

func NewApplication(name string, description string, appType string, fallbackName string, availabilityThreshold int, targets []ApplicationPlatform) *Application

NewApplication creates a new Application object, use CreateApplication to actually create the application.

func (*Application) DiffersFrom

func (a *Application) DiffersFrom(other *Application) bool

DiffersFrom determines if fields in this application differ from the other application

type ApplicationGeo

type ApplicationGeo struct {
	Market  map[string]Handicap `json:"market,omitempty"`
	Country map[string]Handicap `json:"country,omitempty"`
	Global  *Handicap           `json:"global,omitempty"`
}

ApplicationGeo represents geo restrictions against a platform for an app

func (*ApplicationGeo) DiffersFrom

func (g *ApplicationGeo) DiffersFrom(other *ApplicationGeo) bool

DiffersFrom determines if fields in this application differ from the other application

type ApplicationPlatform

type ApplicationPlatform struct {
	ID           *int            `json:"id,omitempty"`
	Cname        *string         `json:"cname,omitempty"`
	Handicap     *int            `json:"handicap,omitempty"`
	Weight       *int            `json:"weight,omitempty"`
	Enabled      *bool           `json:"enabled,omitempty"`
	Description  *string         `json:"description,omitempty"`
	SonarEnabled *bool           `json:"sonarEnabled,omitempty"`
	Geo          *ApplicationGeo `json:"geo,omitempty"`
}

ApplicationPlatform represents a platform eligable for an app

func (*ApplicationPlatform) DiffersFrom

func (p *ApplicationPlatform) DiffersFrom(other *ApplicationPlatform) bool

DiffersFrom determines if fields in this application differ from the other application

type CAAEntry

type CAAEntry struct {
	Tag   string `json:"tag"`
	Flags int    `json:"flags"`
	Value string `json:"value"`
}

CAAEntry is a single entry in a CAA record

type CAAResponse

type CAAResponse struct {
	Entries []CAAEntry `json:"entries"`
}

CAAResponse is used for records of type CAA

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client implements a client for the Cedexis API

func NewClient

func NewClient(ctx context.Context, clientID string, clientSecret string) *Client

NewClient creates a new Cedexis API client

func (*Client) CreateAlert

func (c *Client) CreateAlert(alert *Alert) (*Alert, error)

CreateAlert creates new alerts.

func (*Client) CreateApplication

func (c *Client) CreateApplication(app *Application) (*Application, error)

CreateApplication creates an application

func (*Client) CreatePrivatePlatform

func (c *Client) CreatePrivatePlatform(spec *PlatformConfig) (*PlatformConfig, error)

CreatePrivatePlatform creates a new platform

func (*Client) CreateRecord

func (c *Client) CreateRecord(r *Record) (*Record, error)

CreateRecord creates a DNS record

func (*Client) CreateZone

func (c *Client) CreateZone(name string, description string, tags []string, importContents *string) (*Zone, error)

CreateZone creates a new DNS zone, with optional zone file

func (*Client) DeleteAlert

func (c *Client) DeleteAlert(id int) error

DeleteAlert deletes an alert.

func (*Client) DeleteApplication

func (c *Client) DeleteApplication(id int) error

DeleteApplication deletes an app.

func (*Client) DeletePrivatePlatform

func (c *Client) DeletePrivatePlatform(id int) error

DeletePrivatePlatform removes a platform

func (*Client) DeleteZone

func (c *Client) DeleteZone(id int) error

DeleteZone deletes an alert.

func (*Client) GetAlert

func (c *Client) GetAlert(id int) (*Alert, error)

GetAlert gets an alert.

func (*Client) GetAlertByName

func (c *Client) GetAlertByName(name string) (*Alert, error)

GetAlertByName returns an alert by name.

func (*Client) GetAlerts

func (c *Client) GetAlerts() ([]*Alert, error)

GetAlerts returns all configured alerts.

func (*Client) GetApplication

func (c *Client) GetApplication(id int) (*Application, error)

GetApplication gets an alert.

func (*Client) GetApplicationByName

func (c *Client) GetApplicationByName(name string) (*Application, error)

GetApplicationByName gets an application by name.

func (*Client) GetApplications

func (c *Client) GetApplications() ([]*Application, error)

GetApplications gets all applications.

func (*Client) GetCountries

func (c *Client) GetCountries() ([]*Country, error)

GetCountries gets all details for countries.

func (*Client) GetCountryByName

func (c *Client) GetCountryByName(name string) (*Country, error)

GetCountryByName gets a country by name.

func (*Client) GetEnabledPlatforms

func (c *Client) GetEnabledPlatforms(tag *string) ([]*PlatformConfig, error)

GetEnabledPlatforms gets the avalable platforms, optionally filtered by tag

func (*Client) GetPlatforms

func (c *Client) GetPlatforms(t PlatformType) ([]*PlatformInfo, error)

GetPlatforms gets information about all public and private platforms

func (*Client) GetPrivatePlatform

func (c *Client) GetPrivatePlatform(id int) (*PlatformConfig, error)

GetPrivatePlatform gets a platform by ID

func (*Client) GetPrivatePlatformByName

func (c *Client) GetPrivatePlatformByName(name string) (*PlatformConfig, error)

GetPrivatePlatformByName gets a platform by Name

func (*Client) GetProviderCategories

func (c *Client) GetProviderCategories() ([]*NameID, error)

GetProviderCategories gets the platform provider categories (CDN, Cloud, etc)

func (*Client) GetRecord

func (c *Client) GetRecord(id int) (*Record, error)

GetRecord gets a DNS record

func (*Client) GetRecordByName

func (c *Client) GetRecordByName(zone string, name string, rtype string) (*Record, error)

GetRecordByName gets a DNS record

func (*Client) GetZone

func (c *Client) GetZone(id int) (*Zone, error)

GetZone gets a zone.

func (*Client) GetZoneByName

func (c *Client) GetZoneByName(name string) (*Zone, error)

GetZoneByName gets a zone by name, returning nil if not found

func (*Client) GetZones

func (c *Client) GetZones() ([]*Zone, error)

GetZones returns all configured zones.

func (*Client) NewAlert

func (c *Client) NewAlert(name string, t AlertType, platform int,
	change AlertChange, timing AlertTiming, emails []string, minInterval int) *Alert

NewAlert creates a new alert object, use CreateAlert to create in Cedexis.

func (*Client) Ping

func (c *Client) Ping() error

Ping validates connectivity to Cedexis API - returns error on failure

func (*Client) UpdateAlert

func (c *Client) UpdateAlert(alert *Alert) (*Alert, error)

UpdateAlert creates new alerts.

func (*Client) UpdateApplication

func (c *Client) UpdateApplication(app *Application) (*Application, error)

UpdateApplication updates an app.

func (*Client) UpdatePrivatePlatform

func (c *Client) UpdatePrivatePlatform(spec *PlatformConfig) error

UpdatePrivatePlatform updates a platform

func (*Client) UpdateRecord

func (c *Client) UpdateRecord(r *Record) (*Record, error)

UpdateRecord updates a record

type Country

type Country struct {
	Location
	OverallPercent float32      `json:"overallPercent"`
	Subcontinent   Subcontinent `json:"subcontinent"`
	Market         Location     `json:"market"`
}

type DomainNameResponse

type DomainNameResponse struct {
	DomainName string `json:"domainName"`
}

DomainNameResponse is used for records of type PTR and CNAME

type DomainNamesResponse

type DomainNamesResponse struct {
	DomainNames []string `json:"domainNames"`
}

DomainNamesResponse is used for records of type NS

type FusionCustomConfig

type FusionCustomConfig struct {
	Enabled         *bool   `json:"enabled,omitempty"`
	LoadURL         *string `json:"loadUrl,omitempty"`
	LoadRateSeconds *int    `json:"loadRateSeconds,omitempty"`
}

FusionCustomConfig customizes fusion for the platform

func (*FusionCustomConfig) DiffersFrom

func (c *FusionCustomConfig) DiffersFrom(other *FusionCustomConfig) bool

DiffersFrom indicates if any fields in this config (that are non-nil) differ from another config.

type Handicap

type Handicap struct {
	Handicap *int  `json:"handicap,omitempty"`
	Enabled  *bool `json:"enabled,omitempty"`
	Priority *int  `json:"priority,omitempty"`
}

Handicap represents a restriction against a given location

func (*Handicap) DiffersFrom

func (h *Handicap) DiffersFrom(other *Handicap) bool

DiffersFrom determines if fields in this application differ from the other application

type Location

type Location struct {
	ID      int    `json:"id"`
	ISOCode string `json:"isoCode"`
	Name    string `json:"name"`
}

type MXHost

type MXHost struct {
	Priority int    `json:"priority"`
	Target   string `json:"target"`
}

MXHost represents an individual MX host in an MX record

type MXResponse

type MXResponse struct {
	Hosts []MXHost `json:"hosts"`
}

MXResponse is used for records of type MX

type Market

type Market string

Market holds the market as two-character 'ISO codes'

const (
	// MarketGlobal represents the global market (world-wide)
	MarketGlobal Market = "GL"

	// MarketAfrica represents the african market
	MarketAfrica Market = "AF"

	// MarketAsia represents the asian market
	MarketAsia Market = "AS"

	// MarketEurope represents the european market
	MarketEurope Market = "EU"

	// MarketNorthAmerica represents the north-american market
	MarketNorthAmerica Market = "NA"

	// MarketOceania represents the oceania market
	MarketOceania Market = "OC"

	// MarketSouthAmerica represents the south-american market
	MarketSouthAmerica Market = "SA"

	// MarketUnknown is a placeholder when the market is unknown
	MarketUnknown Market = "XX"
)

func (*Market) DiffersFrom

func (m *Market) DiffersFrom(other *Market) bool

DiffersFrom indicates if any fields in this config (that are non-nil) differ from another config.

type NameID

type NameID struct {
	ID   *PlatformCategory `json:"id,omitempty"`
	Name *string           `json:"name,omitempty"`
}

NameID represents a name-value pair

func (*NameID) DiffersFrom

func (c *NameID) DiffersFrom(other *NameID) bool

DiffersFrom indicates if any fields in this config (that are non-nil) differ from another config.

type PlatformCategory

type PlatformCategory int

PlatformCategory represents different categories of community platforms

const (
	// PlatformCategoryCloudComputing is platforms from community cloud environments
	PlatformCategoryCloudComputing PlatformCategory = 1

	// PlatformCategoryDynamicContent is platforms from community dynamic content environments
	PlatformCategoryDynamicContent PlatformCategory = 2

	// PlatformCategoryDeliveryNetwork is platforms from community CDN environments
	PlatformCategoryDeliveryNetwork PlatformCategory = 3

	// PlatformCategoryCloudStorage is platforms from community cloud storage environments
	PlatformCategoryCloudStorage PlatformCategory = 6

	// PlatformCategorySecureObjectDelivery is platforms from community secure object environments
	PlatformCategorySecureObjectDelivery PlatformCategory = 7

	// PlatformCategoryManagedDNS is platforms from community managed DNS environments
	PlatformCategoryManagedDNS PlatformCategory = 8
)

func (*PlatformCategory) DiffersFrom

func (c *PlatformCategory) DiffersFrom(other *PlatformCategory) bool

DiffersFrom indicates if any fields in this config (that are non-nil) differ from another config.

type PlatformConfig

type PlatformConfig struct {
	Created                     *string             `json:"created,omitempty"`
	DisplayName                 *string             `json:"displayName,omitempty"`
	FusionCustomConfig          *FusionCustomConfig `json:"fusionCustomConfig,omitempty"`
	OpenmixEnabled              *bool               `json:"openmixEnabled,omitempty"`
	OpenmixVisible              *bool               `json:"openmixVisible,omitempty"`
	PublicChartEnabled          *bool               `json:"publicChartEnabled,omitempty"`
	RadarConfig                 *RadarConfig        `json:"radarConfig,omitempty"`
	OwnerID                     *int                `json:"ownerId,omitempty"`
	Enabled                     *bool               `json:"enabled,omitempty"`
	Tags                        *[]string           `json:"tags,omitempty"`
	PlatformSubstitutionSources *[]int              `json:"platformSubstitutionSources,omitempty"`
	Name                        *string             `json:"name,omitempty"`
	Modified                    *string             `json:"modified,omitempty"`
	IntendedUse                 *string             `json:"intendedUse,omitempty"`
	ID                          *int                `json:"id,omitempty"`
	Category                    *NameID             `json:"category,omitempty"`
	PrivateArchetype            *bool               `json:"privateArchetype,omitempty"`
	SonarConfig                 *SonarConfig        `json:"sonarConfig,omitempty"`
	PublicProviderArchetypeID   *int                `json:"publicProviderArchetypeId,omitempty"`
	FusionArchetype             *string             `json:"fusionArchetype,omitempty"`
}

PlatformConfig represents a configured platform

func NewPrivatePlatform

func NewPrivatePlatform(
	name string,
	displayName string,
	description string,
	tags []string) *PlatformConfig

NewPrivatePlatform simplifies creating a ConfiguredPlatform instance when the platform is private.

The parameters are defined as follows:

name        Unique identifier for the platform (no spaces)
displayName Unique friendly name for the platform (may have spaces)
description Description of the new platform
tags        Tags to apply to the new platform

func NewPublicCloudPrivatePlatform

func NewPublicCloudPrivatePlatform(
	name string,
	displayName string,
	description string,
	archetypeID int,
	tags []string) *PlatformConfig

NewPublicCloudPrivatePlatform simplifies creating a ConfiguredPlatform instance when the platform is hosted on a known public cloud.

The parameters are defined as follows:

name        Unique identifier for the platform (no spaces)
displayName Unique friendly name for the platform (may have spaces)
description Description of the new platform
archetypeID Unique id of the underlying community public cloud platform
tags        Tags to apply to the new platform

func (*PlatformConfig) DiffersFrom

func (c *PlatformConfig) DiffersFrom(other *PlatformConfig) bool

DiffersFrom indicates if any fields in this config (that are non-nil) differ from another config.

type PlatformInfo

type PlatformInfo struct {
	ID                 *int    `json:"id,omitempty"`
	Name               *string `json:"name,omitempty"`
	AliasedPlatform    *NameID `json:"aliasedPlatform,omitempty"`
	IndexID            *int    `json:"indexId,omitempty"`
	Visibility         *string `json:"visibility,omitempty"`
	Category           *NameID `json:"category,omitempty"`
	IntendedUse        *string `json:"intendedUse,omitempty"`
	PublicChartEnabled *bool   `json:"publicChartEnabled,omitempty"`
	SonarConfig        *struct {
		Enabled *bool `json:"enabled,omitempty"`
	} `json:"sonarConfig,omitempty"`
	RadarConfig *struct {
		ProbeTypes []struct {
			ID int `json:"id"`
		} `json:"probeTypes"`
	} `json:"radarConfig,omitempty"`
}

PlatformInfo provides information about a platform

type PlatformType

type PlatformType int

PlatformType differentiates different classes of platform

const (
	// PlatformsTypePrivate represents platforms managed by this customer
	PlatformsTypePrivate PlatformType = (1 << iota)

	// PlatformsTypeCommunity platforms are available to the cedexis community
	PlatformsTypeCommunity

	// PlatformsTypeSystem platforms
	PlatformsTypeSystem

	// PlatformsTypeAll kinds of platform
	PlatformsTypeAll PlatformType = PlatformsTypePrivate | PlatformsTypeCommunity | PlatformsTypeSystem
)

type RadarConfig

type RadarConfig struct {
	HTTPEnabled                *bool   `json:"httpEnabled,omitempty"`
	HTTPSEnabled               *bool   `json:"httpsEnabled,omitempty"`
	UsePublicData              *bool   `json:"usePublicData,omitempty"`
	PrimeURL                   *string `json:"primeUrl,omitempty"`
	RTTURL                     *string `json:"rttUrl,omitempty"`
	XLURL                      *string `json:"xlUrl,omitempty"`
	CustomURL                  *string `json:"customUrl,omitempty"`
	PrimeSecureURL             *string `json:"primeSecureUrl,omitempty"`
	RTTSecureURL               *string `json:"rttSecureUrl,omitempty"`
	XLSecureURL                *string `json:"xlSecureUrl,omitempty"`
	CustomSecureURL            *string `json:"customSecureUrl,omitempty"`
	Weight                     *int    `json:"weight,omitempty"`
	SubProviderID              *int    `json:"subProviderId,omitempty"`
	SubProviderOwnerZoneID     *int    `json:"subProviderOwnerZoneId,omitempty"`
	SubProviderOwnerCustomerID *int    `json:"subProviderOwnerCustomerId,omitempty"`
	MajorNetworksOnly          *bool   `json:"majorNetworksOnly,omitempty"`
	WeightEnabled              *bool   `json:"weightEnabled,omitempty"`
	CacheBursting              *bool   `json:"cacheBusting,omitempty"`
	IsoWeight                  *int    `json:"isoWeight,omitempty"`
	IsoWeightList              *string `json:"isoWeightList,omitempty"`
	IsoWeightEnabled           *bool   `json:"isoWeightEnabled,omitempty"`
	MarketWeight               *int    `json:"marketWeight,omitempty"`
	MarketWeightList           *string `json:"marketWeightList,omitempty"`
	MarketWeightEnabled        *bool   `json:"marketWeightEnabled,omitempty"`
	PrimeType                  *string `json:"primeType,omitempty"`
	RTTType                    *string `json:"rttType,omitempty"`
	XLType                     *string `json:"xlType,omitempty"`
	CustomType                 *string `json:"customType,omitempty"`
	PrimeSecureType            *string `json:"primeSecureType,omitempty"`
}

RadarConfig is the RADAR configuration for the platform

func (*RadarConfig) DiffersFrom

func (c *RadarConfig) DiffersFrom(other *RadarConfig) bool

DiffersFrom indicates if any fields in this config (that are non-nil) differ from another config.

type Record

type Record struct {
	ID            *int    `json:"id,omitempty"`
	DNSZoneID     *int    `json:"dnsZoneId,omitempty"`
	TTL           *int    `json:"ttl,omitempty"`
	SubdomainName *string `json:"subdomainName,omitempty"`
	RecordType    *string `json:"recordType,omitempty"`
	Response      *string `json:"response,omitempty"`
}

Record represents a DNS record in a zone.

func (*Record) DiffersFrom

func (r *Record) DiffersFrom(other *Record) bool

DiffersFrom determins if any fields specified in this record differ from the other record

func (*Record) ResponseObject

func (r *Record) ResponseObject() (interface{}, error)

ResponseObject gets the Response field as a structure

func (*Record) SetResponseObject

func (r *Record) SetResponseObject(v interface{}) error

SetResponseObject sets the Response by serializing an XXXXXResponse struct

type SOAResponse

type SOAResponse struct {
	Mname   string `json:"mname"`
	Rname   string `json:"rname"`
	Refresh int    `json:"refresh"`
	Retry   int    `json:"retry"`
	Expire  int    `json:"expire"`
	Minimum int    `json:"rxttl"`
	Serial  int    `json:"serial"`
}

SOAResponse is used for records of type SOA

type SRVEntry

type SRVEntry struct {
	Priority int    `json:"priority"`
	Weight   int    `json:"weight"`
	Port     int    `json:"port"`
	Target   string `json:"target"`
}

SRVEntry is a single entry in an SRV record

type SRVResponse

type SRVResponse struct {
	Entries []SRVEntry `json:"textStrings"`
}

SRVResponse is used for records of type SRV

type SonarConfig

type SonarConfig struct {
	Enabled             *bool   `json:"enabled,omitempty"`
	URL                 *string `json:"url,omitempty"`
	PollIntervalSeconds *int    `json:"pollIntervalSeconds,omitempty"`
	Timeout             *int    `json:"timeout,omitempty"`
	Method              *string `json:"method,omitempty"`
	IgnoreSSLErrors     *bool   `json:"ignoreSSLErrors,omitempty"`
	MaintenanceMode     *bool   `json:"maintenanceMode,omitempty"`
	Host                *string `json:"host,omitempty"`
	Market              *Market `json:"market,omitempty"`
	RequestContentType  *string `json:"requestContentType,omitempty"`
	ResponseBodyMatch   *string `json:"responseBodyMatch,omitempty"`
	ResponseMatchType   *string `json:"responseMatchType,omitempty"`
}

SonarConfig represents the sonar configuration for a platform

func (*SonarConfig) DiffersFrom

func (c *SonarConfig) DiffersFrom(other *SonarConfig) bool

DiffersFrom indicates if any fields in this config (that are non-nil) differ from another config.

type Subcontinent

type Subcontinent struct {
	Location
	Continent Location `json:"continent"`
}

type TextStringsResponse

type TextStringsResponse struct {
	TextStrings []string `json:"textStrings"`
}

TextStringsResponse is used for records of type TXT and SPF

type Zone

type Zone struct {
	ID                  *int     `json:"id,omitempty"`
	DomainName          *string  `json:"domainName,omitempty"`
	Description         *string  `json:"description,omitempty"`
	Tags                *string  `json:"tags,omitempty"`
	ImportContents      *string  `json:"importContents,omitempty"`
	IsPrimary           *bool    `json:"isPrimary,omitempty"`
	ZoneTransferEnabled *bool    `json:"zoneTranserEnabled,omitempty"`
	LastImport          *string  `json:"lastImport,omitempty"`
	Records             []Record `json:"records,omitempty"`
}

Zone represents a DNS zone.

Jump to

Keyboard shortcuts

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