API Object - service_tunnel

  • Updated on Oct 31, 2023

Service Tunnel Metadata

type Metadata struct {
	Name         string `json:"name,omitempty"`
	FriendlyName string `json:"friendly_name,omitempty"`
	Description  string `json:"description,omitempty"`
	Autorun      bool   `json:"autorun"`
	Tags         Tags   `json:"tags"`
}

Service Tunnel Spec

type Spec struct {
	// PeerAccessTiers (mandatory) specifies the Access Tiers that comprise this service tunnel.
	PeerAccessTiers []PeerAccessTier    `json:"peer_access_tiers"`
	// NameResolution (optional) specifies the DNS resolver address(es) to be set on the device.
	// If NameResolution is specified, all DNS requests will be resolved at the specified resolver address(es)
	// If NameResolution is not specified, DNS requests will be resolved at the Access Tier; on desktop 
	// devices only DNS requests for `PublicDomains` and `PrivateDomains` are intercepted and resolved 
	// at the Access Tier - other domains are resolved using the desktop device's default network resolver
	NameResolution  NameResolutionInfo  `json:"name_resolution,omitempty"`
}

type Tags

type Tags struct {
	Icon            *string `json:"icon,omitempty"`
	DescriptionLink *string `json:"description_link,omitempty"`
}

type PeerAccessTier

type PeerAccessTier struct {
	Cluster     string   `json:"cluster"`
	// AccessTiers (mandatory) is a list of access tiers in a cluster - the Access Tiers must have
	// non-overlapping CIDR ranges
	// For Global Edge deployments, set the value to ["*"] to indicate all Access Tiers in the cluster
	AccessTiers []string `json:"access_tiers"`
	// Connectors (optional) (use for Global Edge deployments) - the Connectors must have 
	// non-overlapping CIDR ranges
	Connectors  []string `json:"connectors,omitempty"`

	// List of CIDRs to include or exclude from the tunnel
	PublicCIDRs   *IncludeExclude `json:"public_cidrs,omitempty"`
	// List of domains to include or exclude from the tunnel
	// Routes will be dynamically inserted on the device when the domain is resolved to an IP
	PublicDomains *IncludeExclude `json:"public_domains,omitempty"`
	// List of Application IDs to include or exclude from the tunnels
	// Each Application ID corresponds to a list of domains as defined via the Public Resources section
	// Routes will be dynamically inserted on the device when these domains are resolved to an IP
	Applications  *IncludeExclude `json:"applications,omitempty"`
}

type IncludeExclude

type IncludeExclude struct {
	Include []string `json:"include"`
	Exclude []string `json:"exclude"`
}

type NameResolutionInfo

type NameResolutionInfo struct {
	NameServers []string `json:"name_servers"`
}