restapi

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Oct 25, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LatestVersion = "2"
)

Variables

This section is empty.

Functions

func Bool

func Bool(v bool) *bool

func String

func String(s string) *string

func Uint32

func Uint32(v uint32) *uint32

Types

type APIKey

type APIKey struct {
	// unique API key resource identifier
	ID string `json:"id,omitempty"`
	// URI to the API resource of this API key
	URI string `json:"uri,omitempty"`
	// human-readable description of what uses the API key to authenticate. optional,
	// max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined data of this API key. optional, max 4096 bytes
	Metadata string `json:"metadata,omitempty"`
	// timestamp when the api key was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// the bearer token that can be placed into the Authorization header to
	// authenticate request to the ngrok API. This value is only available one time, on
	// the API response from key creation. Otherwise it is null.
	Token *string `json:"token,omitempty"`
	// If supplied at credential creation, ownership will be assigned to the specified
	// User or Bot. Only admins may specify an owner other than themselves. Defaults to
	// the authenticated User or Bot.
	OwnerID *string `json:"owner_id,omitempty"`
}

type APIKeyCreate

type APIKeyCreate struct {
	// human-readable description of what uses the API key to authenticate. optional,
	// max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined data of this API key. optional, max 4096 bytes
	Metadata string `json:"metadata,omitempty"`
	// If supplied at credential creation, ownership will be assigned to the specified
	// User or Bot. Only admins may specify an owner other than themselves. Defaults to
	// the authenticated User or Bot.
	OwnerID *string `json:"owner_id,omitempty"`
	// If supplied at credential creation, ownership will be assigned to the specified
	// User. Only admins may specify an owner other than themselves. Both owner_id and
	// owner_email may not be specified.
	OwnerEmail string `json:"owner_email,omitempty"`
}

type APIKeyList

type APIKeyList struct {
	// the list of API keys for this account
	Keys []APIKey `json:"keys,omitempty"`
	// URI of the API keys list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type APIKeyUpdate

type APIKeyUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of what uses the API key to authenticate. optional,
	// max 255 bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined data of this API key. optional, max 4096 bytes
	Metadata *string `json:"metadata,omitempty"`
}

type AWSAuth

type AWSAuth struct {
	// A role for ngrok to assume on your behalf to deposit events into your AWS
	// account.
	Role *AWSRole `json:"role,omitempty"`
	// Credentials to your AWS account if you prefer ngrok to sign in with long-term
	// access keys.
	Creds *AWSCredentials `json:"creds,omitempty"`
}

type AWSCredentials

type AWSCredentials struct {
	// The ID portion of an AWS access key.
	AWSAccessKeyID string `json:"aws_access_key_id,omitempty"`
	// The secret portion of an AWS access key.
	AWSSecretAccessKey *string `json:"aws_secret_access_key,omitempty"`
}

type AWSRole

type AWSRole struct {
	// An ARN that specifies the role that ngrok should use to deliver to the
	// configured target.
	RoleARN string `json:"role_arn,omitempty"`
}

type AbuseReport

type AbuseReport struct {
	// ID of the abuse report
	ID string `json:"id,omitempty"`
	// URI of the abuse report API resource
	URI string `json:"uri,omitempty"`
	// timestamp that the abuse report record was created in RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// a list of URLs containing suspected abusive content
	URLs []string `json:"urls,omitempty"`
	// arbitrary user-defined data about this abuse report. Optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// Indicates whether ngrok has processed the abuse report. one of PENDING,
	// PROCESSED, or PARTIALLY_PROCESSED
	Status string `json:"status,omitempty"`
	// an array of hostname statuses related to the report
	Hostnames []AbuseReportHostname `json:"hostnames,omitempty"`
}

type AbuseReportCreate

type AbuseReportCreate struct {
	// a list of URLs containing suspected abusive content
	URLs []string `json:"urls,omitempty"`
	// arbitrary user-defined data about this abuse report. Optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
}

type AbuseReportHostname

type AbuseReportHostname struct {
	// the hostname ngrok has parsed out of one of the reported URLs in this abuse
	// report
	Hostname string `json:"hostname,omitempty"`
	// indicates what action ngrok has taken against the hostname. one of PENDING,
	// BANNED, UNBANNED, or IGNORE
	Status string `json:"status,omitempty"`
}

type AgentDeprecated added in v0.3.0

type AgentDeprecated struct {
	// the upcoming minimum supported agent version
	UpcomingMinimumVersion string `json:"upcoming_minimum_version,omitempty"`
	// the date by which the current agent must be upgraded to the upcoming minimum
	// version
	UpcomingEnforcementDate string `json:"upcoming_enforcement_date,omitempty"`
	// additional information about the agent deprecation
	Message string `json:"message,omitempty"`
}

type AgentIngress added in v0.1.4

type AgentIngress struct {
	// unique Agent Ingress resource identifier
	ID string `json:"id,omitempty"`
	// URI to the API resource of this Agent ingress
	URI string `json:"uri,omitempty"`
	// human-readable description of the use of this Agent Ingress. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this Agent Ingress. optional,
	// max 4096 bytes
	Metadata string `json:"metadata,omitempty"`
	// the domain that you own to be used as the base domain name to generate regional
	// agent ingress domains.
	Domain string `json:"domain,omitempty"`
	// a list of target values to use as the values of NS records for the domain
	// property these values will delegate control over the domain to ngrok
	NSTargets []string `json:"ns_targets,omitempty"`
	// a list of regional agent ingress domains that are subdomains of the value of
	// domain this value may increase over time as ngrok adds more regions
	RegionDomains []string `json:"region_domains,omitempty"`
	// timestamp when the Agent Ingress was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// configuration for automatic management of TLS certificates for this domain, or
	// null if automatic management is disabled
	CertificateManagementPolicy *AgentIngressCertPolicy `json:"certificate_management_policy,omitempty"`
	// status of the automatic certificate management for this domain, or null if
	// automatic management is disabled
	CertificateManagementStatus *AgentIngressCertStatus `json:"certificate_management_status,omitempty"`
}

type AgentIngressCertJob added in v0.1.5

type AgentIngressCertJob struct {
	// if present, an error code indicating why provisioning is failing. It may be
	// either a temporary condition (INTERNAL_ERROR), or a permanent one the user must
	// correct (DNS_ERROR).
	ErrorCode *string `json:"error_code,omitempty"`
	// a message describing the current status or error
	Msg string `json:"msg,omitempty"`
	// timestamp when the provisioning job started, RFC 3339 format
	StartedAt string `json:"started_at,omitempty"`
	// timestamp when the provisioning job will be retried
	RetriesAt *string `json:"retries_at,omitempty"`
}

type AgentIngressCertPolicy added in v0.1.5

type AgentIngressCertPolicy struct {
	// certificate authority to request certificates from. The only supported value is
	// letsencrypt.
	Authority string `json:"authority,omitempty"`
	// type of private key to use when requesting certificates. Defaults to rsa, can be
	// either rsa or ecdsa.
	PrivateKeyType string `json:"private_key_type,omitempty"`
}

type AgentIngressCertStatus added in v0.1.5

type AgentIngressCertStatus struct {
	// timestamp when the next renewal will be requested, RFC 3339 format
	RenewsAt *string `json:"renews_at,omitempty"`
	// status of the certificate provisioning job, or null if the certificiate isn't
	// being provisioned or renewed
	ProvisioningJob *AgentIngressCertJob `json:"provisioning_job,omitempty"`
}

type AgentIngressCreate added in v0.1.4

type AgentIngressCreate struct {
	// human-readable description of the use of this Agent Ingress. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this Agent Ingress. optional,
	// max 4096 bytes
	Metadata string `json:"metadata,omitempty"`
	// the domain that you own to be used as the base domain name to generate regional
	// agent ingress domains.
	Domain string `json:"domain,omitempty"`
	// configuration for automatic management of TLS certificates for this domain, or
	// null if automatic management is disabled. Optional.
	CertificateManagementPolicy *AgentIngressCertPolicy `json:"certificate_management_policy,omitempty"`
}

type AgentIngressList added in v0.1.4

type AgentIngressList struct {
	// the list of Agent Ingresses owned by this account
	Ingresses []AgentIngress `json:"ingresses,omitempty"`
	// URI of the Agent Ingress list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type AgentIngressUpdate added in v0.1.4

type AgentIngressUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of the use of this Agent Ingress. optional, max 255
	// bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this Agent Ingress. optional,
	// max 4096 bytes
	Metadata *string `json:"metadata,omitempty"`
	// configuration for automatic management of TLS certificates for this domain, or
	// null if automatic management is disabled. Optional.
	CertificateManagementPolicy *AgentIngressCertPolicy `json:"certificate_management_policy,omitempty"`
}

type AgentSessionEvent added in v0.3.0

type AgentSessionEvent struct {
	// a reference to the session to which this event corresponds
	Session Ref `json:"session,omitempty"`
	// a reference to the credential used to authenticate this session
	Credential *Ref `json:"credential,omitempty"`
	// the ip address from which the agent is connecting
	AgentIP string `json:"agent_ip,omitempty"`
	// the ip address of the ingress server to which the agent is connecting
	IngressServerIP string `json:"ingress_server_ip,omitempty"`
	// the region of the tunnel server
	Region string `json:"region,omitempty"`
	// the hostname of the tunnel server
	IngressHostname string `json:"ingress_hostname,omitempty"`
	// the user agent provided to the tunnel server by the agent
	UserAgent string `json:"user_agent,omitempty"`
	// the session metadata provided by the agent on connection
	Metadata string `json:"metadata,omitempty"`
	// the operating system of the machine on which the agent is running
	OS string `json:"os,omitempty"`
	// the CPU architecture of the machine on which the agent is running
	Arch string `json:"arch,omitempty"`
	// the transport protocol used internally by the agent "muxado" for agents and
	// agent libraries, "ssh" for reverse SSH tunnels
	Transport string `json:"transport,omitempty"`
	// the time at which the session started
	StartedAt string `json:"started_at,omitempty"`
	// the time at which the session expires
	ExpiresAt *string `json:"expires_at,omitempty"`
	// the time at which the session stopped
	StoppedAt *string `json:"stopped_at,omitempty"`
	// If the current agent version is deprecated, informs when support will be dropped
	// and the next minimum supported version
	Deprecated *AgentDeprecated `json:"deprecated,omitempty"`
	// on a failed session start, an explanation of the failure on a successful session
	// start, the empty string on a session stop, the reason for the session stop
	Error string `json:"error,omitempty"`
}

type AgentVersionDeprecated added in v0.1.5

type AgentVersionDeprecated struct {
	NextMin  string `json:"next_min,omitempty"`
	NextDate string `json:"next_date,omitempty"`
	Msg      string `json:"msg,omitempty"`
}

type ApplicationSession added in v0.1.5

type ApplicationSession struct {
	// unique application session resource identifier
	ID string `json:"id,omitempty"`
	// URI of the application session API resource
	URI string `json:"uri,omitempty"`
	// URL of the hostport served by this endpoint
	PublicURL string `json:"public_url,omitempty"`
	// browser session details of the application session
	BrowserSession BrowserSession `json:"browser_session,omitempty"`
	// application user this session is associated with
	ApplicationUser *Ref `json:"application_user,omitempty"`
	// timestamp when the user was created in RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// timestamp when the user was last active in RFC 3339 format
	LastActive string `json:"last_active,omitempty"`
	// timestamp when session expires in RFC 3339 format
	ExpiresAt string `json:"expires_at,omitempty"`
	// ephemeral endpoint this session is associated with
	Endpoint *Ref `json:"endpoint,omitempty"`
	// edge this session is associated with, null if the endpoint is agent-initiated
	Edge *Ref `json:"edge,omitempty"`
	// route this session is associated with, null if the endpoint is agent-initiated
	Route *Ref `json:"route,omitempty"`
}

type ApplicationSessionList added in v0.1.5

type ApplicationSessionList struct {
	// list of all application sessions on this account
	ApplicationSessions []ApplicationSession `json:"application_sessions,omitempty"`
	// URI of the application session list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type ApplicationUser added in v0.1.5

type ApplicationUser struct {
	// unique application user resource identifier
	ID string `json:"id,omitempty"`
	// URI of the application user API resource
	URI string `json:"uri,omitempty"`
	// identity provider that the user authenticated with
	IdentityProvider IdentityProvider `json:"identity_provider,omitempty"`
	// unique user identifier
	ProviderUserID string `json:"provider_user_id,omitempty"`
	// user username
	Username string `json:"username,omitempty"`
	// user email
	Email string `json:"email,omitempty"`
	// user common name
	Name string `json:"name,omitempty"`
	// timestamp when the user was created in RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// timestamp when the user was last active in RFC 3339 format
	LastActive string `json:"last_active,omitempty"`
	// timestamp when the user last signed-in in RFC 3339 format
	LastLogin string `json:"last_login,omitempty"`
}

type ApplicationUserList added in v0.1.5

type ApplicationUserList struct {
	// list of all application users on this account
	ApplicationUsers []ApplicationUser `json:"application_users,omitempty"`
	// URI of the application user list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type AuditEventDashLogin added in v0.1.5

type AuditEventDashLogin struct {
	AccountID  string `json:"account_id,omitempty"`
	UserID     string `json:"user_id,omitempty"`
	RemoteAddr string `json:"remote_addr,omitempty"`
	Email      string `json:"email,omitempty"`
}

type AuditEventEndpoint added in v0.1.5

type AuditEventEndpoint struct {
	ID                    string `json:"id,omitempty"`
	AccountID             string `json:"account_id,omitempty"`
	Region                string `json:"region,omitempty"`
	IngressRegion         string `json:"ingress_region,omitempty"`
	CreatedAt             string `json:"created_at,omitempty"`
	UpdatedAt             string `json:"updated_at,omitempty"`
	URL                   string `json:"url,omitempty"`
	Proto                 string `json:"proto,omitempty"`
	DomainID              string `json:"domain_id,omitempty"`
	TCPAddrID             string `json:"tcp_addr_id,omitempty"`
	Rank                  int32  `json:"rank,omitempty"`
	StaticTunnelID        string `json:"static_tunnel_id,omitempty"`
	StaticTunnelRegion    string `json:"static_tunnel_region,omitempty"`
	StaticTunnelSessionID string `json:"static_tunnel_session_id,omitempty"`
	EdgeID                string `json:"edge_id,omitempty"`
	Type                  string `json:"type,omitempty"`
}

type AuditEventTunnel added in v0.1.5

type AuditEventTunnel struct {
	ID           string            `json:"id,omitempty"`
	CreatedAt    string            `json:"created_at,omitempty"`
	DeletedAt    string            `json:"deleted_at,omitempty"`
	AccountID    string            `json:"account_id,omitempty"`
	SessionID    string            `json:"session_id,omitempty"`
	RemoteAddr   string            `json:"remote_addr,omitempty"`
	RegionID     string            `json:"region_id,omitempty"`
	AgentVersion string            `json:"agent_version,omitempty"`
	ForwardsTo   string            `json:"forwards_to,omitempty"`
	EndpointID   string            `json:"endpoint_id,omitempty"`
	Labels       map[string]string `json:"labels,omitempty"`
	BackendIDs   []string          `json:"backend_ids,omitempty"`
	Hostname     string            `json:"hostname,omitempty"`
	Port         int64             `json:"port,omitempty"`
	Proto        string            `json:"proto,omitempty"`
}

type AuditEventTunnelSession added in v0.1.5

type AuditEventTunnelSession struct {
	ID                   string                 `json:"id,omitempty"`
	RemoteAddr           string                 `json:"remote_addr,omitempty"`
	CreatedAt            string                 `json:"created_at,omitempty"`
	AgentVersion         string                 `json:"agent_version,omitempty"`
	Transport            string                 `json:"transport,omitempty"`
	Os                   string                 `json:"os,omitempty"`
	Arch                 string                 `json:"arch,omitempty"`
	RegionID             string                 `json:"region_id,omitempty"`
	CredID               string                 `json:"cred_id,omitempty"`
	SSHCredID            string                 `json:"ssh_cred_id,omitempty"`
	AgentIngressHostname string                 `json:"agent_ingress_hostname,omitempty"`
	ProxyType            string                 `json:"proxy_type,omitempty"`
	MutualTls            bool                   `json:"mutual_tls,omitempty"`
	ServiceRun           bool                   `json:"service_run,omitempty"`
	ConfigVersion        string                 `json:"config_version,omitempty"`
	CustomCas            bool                   `json:"custom_cas,omitempty"`
	ClientType           string                 `json:"client_type,omitempty"`
	UserAgent            TunnelSessionUserAgent `json:"user_agent,omitempty"`
	Deprecated           AgentVersionDeprecated `json:"deprecated,omitempty"`
}

type BotUser added in v0.3.0

type BotUser struct {
	// unique API key resource identifier
	ID string `json:"id,omitempty"`
	// URI to the API resource of this bot user
	URI string `json:"uri,omitempty"`
	// human-readable name used to identify the bot
	Name string `json:"name,omitempty"`
	// whether or not the bot is active
	Active bool `json:"active,omitempty"`
	// timestamp when the api key was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
}

type BotUserCreate added in v0.3.0

type BotUserCreate struct {
	// human-readable name used to identify the bot
	Name string `json:"name,omitempty"`
	// whether or not the bot is active
	Active *bool `json:"active,omitempty"`
}

type BotUserList added in v0.3.0

type BotUserList struct {
	// the list of all bot users on this account
	BotUsers []BotUser `json:"bot_users,omitempty"`
	// URI of the bot users list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type BotUserUpdate added in v0.3.0

type BotUserUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable name used to identify the bot
	Name *string `json:"name,omitempty"`
	// whether or not the bot is active
	Active *bool `json:"active,omitempty"`
}

type BrowserSession added in v0.1.5

type BrowserSession struct {
	// HTTP User-Agent data
	UserAgent UserAgent `json:"user_agent,omitempty"`
	// IP address
	IPAddress string `json:"ip_address,omitempty"`
	// IP geolocation data
	Location *Location `json:"location,omitempty"`
}

type CertificateAuthority

type CertificateAuthority struct {
	// unique identifier for this Certificate Authority
	ID string `json:"id,omitempty"`
	// URI of the Certificate Authority API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the Certificate Authority was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this Certificate Authority. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this Certificate Authority.
	// optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// raw PEM of the Certificate Authority
	CAPEM string `json:"ca_pem,omitempty"`
	// subject common name of the Certificate Authority
	SubjectCommonName string `json:"subject_common_name,omitempty"`
	// timestamp when this Certificate Authority becomes valid, RFC 3339 format
	NotBefore string `json:"not_before,omitempty"`
	// timestamp when this Certificate Authority becomes invalid, RFC 3339 format
	NotAfter string `json:"not_after,omitempty"`
	// set of actions the private key of this Certificate Authority can be used for
	KeyUsages []string `json:"key_usages,omitempty"`
	// extended set of actions the private key of this Certificate Authority can be
	// used for
	ExtendedKeyUsages []string `json:"extended_key_usages,omitempty"`
}

type CertificateAuthorityCreate

type CertificateAuthorityCreate struct {
	// human-readable description of this Certificate Authority. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this Certificate Authority.
	// optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// raw PEM of the Certificate Authority
	CAPEM string `json:"ca_pem,omitempty"`
}

type CertificateAuthorityList

type CertificateAuthorityList struct {
	// the list of all certificate authorities on this account
	CertificateAuthorities []CertificateAuthority `json:"certificate_authorities,omitempty"`
	// URI of the certificates authorities list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type CertificateAuthorityUpdate

type CertificateAuthorityUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this Certificate Authority. optional, max 255
	// bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this Certificate Authority.
	// optional, max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
}

type Client

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

func NewClient

func NewClient(cfg ClientConfig) (*Client, error)

func (*Client) APIKeysCreate

func (c *Client) APIKeysCreate(ctx context.Context, arg *APIKeyCreate) (*APIKey, *http.Response, error)

Create a new API key. The generated API key can be used to authenticate to the ngrok API.

func (*Client) APIKeysDelete

func (c *Client) APIKeysDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an API key by ID

func (*Client) APIKeysGet

func (c *Client) APIKeysGet(ctx context.Context, arg *Item) (*APIKey, *http.Response, error)

Get the details of an API key by ID.

func (*Client) APIKeysList

func (c *Client) APIKeysList(ctx context.Context, arg *Paging) (*APIKeyList, *http.Response, error)

List all API keys owned by this account

func (*Client) APIKeysUpdate

func (c *Client) APIKeysUpdate(ctx context.Context, arg *APIKeyUpdate) (*APIKey, *http.Response, error)

Update attributes of an API key by ID.

func (*Client) AbuseReportsCreate

func (c *Client) AbuseReportsCreate(ctx context.Context, arg *AbuseReportCreate) (*AbuseReport, *http.Response, error)

Creates a new abuse report which will be reviewed by our system and abuse response team. This API is only available to authorized accounts. Contact abuse@ngrok.com to request access

func (*Client) AbuseReportsGet

func (c *Client) AbuseReportsGet(ctx context.Context, arg *Item) (*AbuseReport, *http.Response, error)

Get the detailed status of abuse report by ID.

func (*Client) AgentIngressesCreate added in v0.1.4

func (c *Client) AgentIngressesCreate(ctx context.Context, arg *AgentIngressCreate) (*AgentIngress, *http.Response, error)

Create a new Agent Ingress. The ngrok agent can be configured to connect to ngrok via the new set of addresses on the returned Agent Ingress.

func (*Client) AgentIngressesDelete added in v0.1.4

func (c *Client) AgentIngressesDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an Agent Ingress by ID

func (*Client) AgentIngressesGet added in v0.1.4

func (c *Client) AgentIngressesGet(ctx context.Context, arg *Item) (*AgentIngress, *http.Response, error)

Get the details of an Agent Ingress by ID.

func (*Client) AgentIngressesList added in v0.1.4

func (c *Client) AgentIngressesList(ctx context.Context, arg *Paging) (*AgentIngressList, *http.Response, error)

List all Agent Ingresses owned by this account

func (*Client) AgentIngressesUpdate added in v0.1.4

func (c *Client) AgentIngressesUpdate(ctx context.Context, arg *AgentIngressUpdate) (*AgentIngress, *http.Response, error)

Update attributes of an Agent Ingress by ID.

func (*Client) ApplicationSessionsDelete added in v0.1.5

func (c *Client) ApplicationSessionsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an application session by ID.

func (*Client) ApplicationSessionsGet added in v0.1.5

func (c *Client) ApplicationSessionsGet(ctx context.Context, arg *Item) (*ApplicationSession, *http.Response, error)

Get an application session by ID.

func (*Client) ApplicationSessionsList added in v0.1.5

func (c *Client) ApplicationSessionsList(ctx context.Context, arg *Paging) (*ApplicationSessionList, *http.Response, error)

List all application sessions for this account.

func (*Client) ApplicationUsersDelete added in v0.1.5

func (c *Client) ApplicationUsersDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an application user by ID.

func (*Client) ApplicationUsersGet added in v0.1.5

func (c *Client) ApplicationUsersGet(ctx context.Context, arg *Item) (*ApplicationUser, *http.Response, error)

Get an application user by ID.

func (*Client) ApplicationUsersList added in v0.1.5

func (c *Client) ApplicationUsersList(ctx context.Context, arg *Paging) (*ApplicationUserList, *http.Response, error)

List all application users for this account.

func (*Client) BotUsersCreate added in v0.3.0

func (c *Client) BotUsersCreate(ctx context.Context, arg *BotUserCreate) (*BotUser, *http.Response, error)

Create a new bot user

func (*Client) BotUsersDelete added in v0.3.0

func (c *Client) BotUsersDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a bot user by ID

func (*Client) BotUsersGet added in v0.3.0

func (c *Client) BotUsersGet(ctx context.Context, arg *Item) (*BotUser, *http.Response, error)

Get the details of a Bot User by ID.

func (*Client) BotUsersList added in v0.3.0

func (c *Client) BotUsersList(ctx context.Context, arg *Paging) (*BotUserList, *http.Response, error)

List all bot users in this account.

func (*Client) BotUsersUpdate added in v0.3.0

func (c *Client) BotUsersUpdate(ctx context.Context, arg *BotUserUpdate) (*BotUser, *http.Response, error)

Update attributes of a bot user by ID.

func (*Client) CertificateAuthoritiesCreate

func (c *Client) CertificateAuthoritiesCreate(ctx context.Context, arg *CertificateAuthorityCreate) (*CertificateAuthority, *http.Response, error)

Upload a new Certificate Authority

func (*Client) CertificateAuthoritiesDelete

func (c *Client) CertificateAuthoritiesDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a Certificate Authority

func (*Client) CertificateAuthoritiesGet

func (c *Client) CertificateAuthoritiesGet(ctx context.Context, arg *Item) (*CertificateAuthority, *http.Response, error)

Get detailed information about a certficate authority

func (*Client) CertificateAuthoritiesList

func (c *Client) CertificateAuthoritiesList(ctx context.Context, arg *Paging) (*CertificateAuthorityList, *http.Response, error)

List all Certificate Authority on this account

func (*Client) CertificateAuthoritiesUpdate

func (c *Client) CertificateAuthoritiesUpdate(ctx context.Context, arg *CertificateAuthorityUpdate) (*CertificateAuthority, *http.Response, error)

Update attributes of a Certificate Authority by ID

func (*Client) CredentialsCreate

func (c *Client) CredentialsCreate(ctx context.Context, arg *CredentialCreate) (*Credential, *http.Response, error)

Create a new tunnel authtoken credential. This authtoken credential can be used to start a new tunnel session. The response to this API call is the only time the generated token is available. If you need it for future use, you must save it securely yourself.

func (*Client) CredentialsDelete

func (c *Client) CredentialsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a tunnel authtoken credential by ID

func (*Client) CredentialsGet

func (c *Client) CredentialsGet(ctx context.Context, arg *Item) (*Credential, *http.Response, error)

Get detailed information about a tunnel authtoken credential

func (*Client) CredentialsList

func (c *Client) CredentialsList(ctx context.Context, arg *Paging) (*CredentialList, *http.Response, error)

List all tunnel authtoken credentials on this account

func (*Client) CredentialsUpdate

func (c *Client) CredentialsUpdate(ctx context.Context, arg *CredentialUpdate) (*Credential, *http.Response, error)

Update attributes of an tunnel authtoken credential by ID

func (*Client) Delete

func (c *Client) Delete(ctx context.Context, path string, resp interface{}) (*http.Response, error)

func (*Client) Do

func (c *Client) Do(ctx context.Context, method, path string, data interface{}) (*http.Response, error)

func (*Client) EdgeRouteBackendModuleDelete added in v0.1.4

func (c *Client) EdgeRouteBackendModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteBackendModuleGet added in v0.1.4

func (c *Client) EdgeRouteBackendModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointBackend, *http.Response, error)

func (*Client) EdgeRouteBackendModuleReplace added in v0.1.4

func (c *Client) EdgeRouteBackendModuleReplace(ctx context.Context, arg *EdgeRouteBackendReplace) (*EndpointBackend, *http.Response, error)

func (*Client) EdgeRouteCircuitBreakerModuleDelete added in v0.1.4

func (c *Client) EdgeRouteCircuitBreakerModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteCircuitBreakerModuleGet added in v0.1.4

func (c *Client) EdgeRouteCircuitBreakerModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointCircuitBreaker, *http.Response, error)

func (*Client) EdgeRouteCircuitBreakerModuleReplace added in v0.1.4

func (c *Client) EdgeRouteCircuitBreakerModuleReplace(ctx context.Context, arg *EdgeRouteCircuitBreakerReplace) (*EndpointCircuitBreaker, *http.Response, error)

func (*Client) EdgeRouteCompressionModuleDelete added in v0.1.4

func (c *Client) EdgeRouteCompressionModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteCompressionModuleGet added in v0.1.4

func (c *Client) EdgeRouteCompressionModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointCompression, *http.Response, error)

func (*Client) EdgeRouteCompressionModuleReplace added in v0.1.4

func (c *Client) EdgeRouteCompressionModuleReplace(ctx context.Context, arg *EdgeRouteCompressionReplace) (*EndpointCompression, *http.Response, error)

func (*Client) EdgeRouteIPRestrictionModuleDelete added in v0.1.4

func (c *Client) EdgeRouteIPRestrictionModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteIPRestrictionModuleGet added in v0.1.4

func (c *Client) EdgeRouteIPRestrictionModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointIPPolicy, *http.Response, error)

func (*Client) EdgeRouteIPRestrictionModuleReplace added in v0.1.4

func (c *Client) EdgeRouteIPRestrictionModuleReplace(ctx context.Context, arg *EdgeRouteIPRestrictionReplace) (*EndpointIPPolicy, *http.Response, error)

func (*Client) EdgeRouteOAuthModuleDelete added in v0.1.4

func (c *Client) EdgeRouteOAuthModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteOAuthModuleGet added in v0.1.4

func (c *Client) EdgeRouteOAuthModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointOAuth, *http.Response, error)

func (*Client) EdgeRouteOAuthModuleReplace added in v0.1.4

func (c *Client) EdgeRouteOAuthModuleReplace(ctx context.Context, arg *EdgeRouteOAuthReplace) (*EndpointOAuth, *http.Response, error)

func (*Client) EdgeRouteOIDCModuleDelete added in v0.1.4

func (c *Client) EdgeRouteOIDCModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteOIDCModuleGet added in v0.1.4

func (c *Client) EdgeRouteOIDCModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointOIDC, *http.Response, error)

func (*Client) EdgeRouteOIDCModuleReplace added in v0.1.4

func (c *Client) EdgeRouteOIDCModuleReplace(ctx context.Context, arg *EdgeRouteOIDCReplace) (*EndpointOIDC, *http.Response, error)

func (*Client) EdgeRoutePolicyModuleDelete added in v0.3.0

func (c *Client) EdgeRoutePolicyModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRoutePolicyModuleGet added in v0.3.0

func (c *Client) EdgeRoutePolicyModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointPolicy, *http.Response, error)

func (*Client) EdgeRoutePolicyModuleReplace added in v0.3.0

func (c *Client) EdgeRoutePolicyModuleReplace(ctx context.Context, arg *EdgeRoutePolicyReplace) (*EndpointPolicy, *http.Response, error)

func (*Client) EdgeRouteRequestHeadersModuleDelete added in v0.1.4

func (c *Client) EdgeRouteRequestHeadersModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteRequestHeadersModuleGet added in v0.1.4

func (c *Client) EdgeRouteRequestHeadersModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointRequestHeaders, *http.Response, error)

func (*Client) EdgeRouteRequestHeadersModuleReplace added in v0.1.4

func (c *Client) EdgeRouteRequestHeadersModuleReplace(ctx context.Context, arg *EdgeRouteRequestHeadersReplace) (*EndpointRequestHeaders, *http.Response, error)

func (*Client) EdgeRouteResponseHeadersModuleDelete added in v0.1.4

func (c *Client) EdgeRouteResponseHeadersModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteResponseHeadersModuleGet added in v0.1.4

func (c *Client) EdgeRouteResponseHeadersModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointResponseHeaders, *http.Response, error)

func (*Client) EdgeRouteResponseHeadersModuleReplace added in v0.1.4

func (c *Client) EdgeRouteResponseHeadersModuleReplace(ctx context.Context, arg *EdgeRouteResponseHeadersReplace) (*EndpointResponseHeaders, *http.Response, error)

func (*Client) EdgeRouteSAMLModuleDelete added in v0.1.4

func (c *Client) EdgeRouteSAMLModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteSAMLModuleGet added in v0.1.4

func (c *Client) EdgeRouteSAMLModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointSAML, *http.Response, error)

func (*Client) EdgeRouteSAMLModuleReplace added in v0.1.4

func (c *Client) EdgeRouteSAMLModuleReplace(ctx context.Context, arg *EdgeRouteSAMLReplace) (*EndpointSAML, *http.Response, error)

func (*Client) EdgeRouteTrafficPolicyModuleDelete added in v0.4.0

func (c *Client) EdgeRouteTrafficPolicyModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteTrafficPolicyModuleGet added in v0.4.0

func (c *Client) EdgeRouteTrafficPolicyModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointTrafficPolicy, *http.Response, error)

func (*Client) EdgeRouteTrafficPolicyModuleReplace added in v0.4.0

func (c *Client) EdgeRouteTrafficPolicyModuleReplace(ctx context.Context, arg *EdgeRouteTrafficPolicyReplace) (*EndpointTrafficPolicy, *http.Response, error)

func (*Client) EdgeRouteUserAgentFilterModuleDelete added in v0.3.0

func (c *Client) EdgeRouteUserAgentFilterModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteUserAgentFilterModuleGet added in v0.3.0

func (c *Client) EdgeRouteUserAgentFilterModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointUserAgentFilter, *http.Response, error)

func (*Client) EdgeRouteUserAgentFilterModuleReplace added in v0.3.0

func (c *Client) EdgeRouteUserAgentFilterModuleReplace(ctx context.Context, arg *EdgeRouteUserAgentFilterReplace) (*EndpointUserAgentFilter, *http.Response, error)

func (*Client) EdgeRouteWebhookVerificationModuleDelete added in v0.1.4

func (c *Client) EdgeRouteWebhookVerificationModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteWebhookVerificationModuleGet added in v0.1.4

func (c *Client) EdgeRouteWebhookVerificationModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointWebhookValidation, *http.Response, error)

func (*Client) EdgeRouteWebhookVerificationModuleReplace added in v0.1.4

func (c *Client) EdgeRouteWebhookVerificationModuleReplace(ctx context.Context, arg *EdgeRouteWebhookVerificationReplace) (*EndpointWebhookValidation, *http.Response, error)

func (*Client) EdgeRouteWebsocketTCPConverterModuleDelete added in v0.1.4

func (c *Client) EdgeRouteWebsocketTCPConverterModuleDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

func (*Client) EdgeRouteWebsocketTCPConverterModuleGet added in v0.1.4

func (c *Client) EdgeRouteWebsocketTCPConverterModuleGet(ctx context.Context, arg *EdgeRouteItem) (*EndpointWebsocketTCPConverter, *http.Response, error)

func (*Client) EdgeRouteWebsocketTCPConverterModuleReplace added in v0.1.4

func (c *Client) EdgeRouteWebsocketTCPConverterModuleReplace(ctx context.Context, arg *EdgeRouteWebsocketTCPConverterReplace) (*EndpointWebsocketTCPConverter, *http.Response, error)

func (*Client) EdgesHTTPSCreate added in v0.1.4

func (c *Client) EdgesHTTPSCreate(ctx context.Context, arg *HTTPSEdgeCreate) (*HTTPSEdge, *http.Response, error)

Create an HTTPS Edge

func (*Client) EdgesHTTPSDelete added in v0.1.4

func (c *Client) EdgesHTTPSDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an HTTPS Edge by ID

func (*Client) EdgesHTTPSGet added in v0.1.4

func (c *Client) EdgesHTTPSGet(ctx context.Context, arg *Item) (*HTTPSEdge, *http.Response, error)

Get an HTTPS Edge by ID

func (*Client) EdgesHTTPSList added in v0.1.4

func (c *Client) EdgesHTTPSList(ctx context.Context, arg *Paging) (*HTTPSEdgeList, *http.Response, error)

Returns a list of all HTTPS Edges on this account

func (*Client) EdgesHTTPSRoutesCreate added in v0.1.4

func (c *Client) EdgesHTTPSRoutesCreate(ctx context.Context, arg *HTTPSEdgeRouteCreate) (*HTTPSEdgeRoute, *http.Response, error)

Create an HTTPS Edge Route

func (*Client) EdgesHTTPSRoutesDelete added in v0.1.4

func (c *Client) EdgesHTTPSRoutesDelete(ctx context.Context, arg *EdgeRouteItem) (*Empty, *http.Response, error)

Delete an HTTPS Edge Route by ID

func (*Client) EdgesHTTPSRoutesGet added in v0.1.4

func (c *Client) EdgesHTTPSRoutesGet(ctx context.Context, arg *EdgeRouteItem) (*HTTPSEdgeRoute, *http.Response, error)

Get an HTTPS Edge Route by ID

func (*Client) EdgesHTTPSRoutesUpdate added in v0.1.4

func (c *Client) EdgesHTTPSRoutesUpdate(ctx context.Context, arg *HTTPSEdgeRouteUpdate) (*HTTPSEdgeRoute, *http.Response, error)

Updates an HTTPS Edge Route by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API.

func (*Client) EdgesHTTPSUpdate added in v0.1.4

func (c *Client) EdgesHTTPSUpdate(ctx context.Context, arg *HTTPSEdgeUpdate) (*HTTPSEdge, *http.Response, error)

Updates an HTTPS Edge by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API.

func (*Client) EdgesTCPCreate added in v0.1.1

func (c *Client) EdgesTCPCreate(ctx context.Context, arg *TCPEdgeCreate) (*TCPEdge, *http.Response, error)

Create a TCP Edge

func (*Client) EdgesTCPDelete added in v0.1.1

func (c *Client) EdgesTCPDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a TCP Edge by ID

func (*Client) EdgesTCPGet added in v0.1.1

func (c *Client) EdgesTCPGet(ctx context.Context, arg *Item) (*TCPEdge, *http.Response, error)

Get a TCP Edge by ID

func (*Client) EdgesTCPList added in v0.1.3

func (c *Client) EdgesTCPList(ctx context.Context, arg *Paging) (*TCPEdgeList, *http.Response, error)

Returns a list of all TCP Edges on this account

func (*Client) EdgesTCPUpdate added in v0.1.1

func (c *Client) EdgesTCPUpdate(ctx context.Context, arg *TCPEdgeUpdate) (*TCPEdge, *http.Response, error)

Updates a TCP Edge by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API.

func (*Client) EdgesTLSCreate added in v0.1.1

func (c *Client) EdgesTLSCreate(ctx context.Context, arg *TLSEdgeCreate) (*TLSEdge, *http.Response, error)

Create a TLS Edge

func (*Client) EdgesTLSDelete added in v0.1.1

func (c *Client) EdgesTLSDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a TLS Edge by ID

func (*Client) EdgesTLSGet added in v0.1.1

func (c *Client) EdgesTLSGet(ctx context.Context, arg *Item) (*TLSEdge, *http.Response, error)

Get a TLS Edge by ID

func (*Client) EdgesTLSList added in v0.1.3

func (c *Client) EdgesTLSList(ctx context.Context, arg *Paging) (*TLSEdgeList, *http.Response, error)

Returns a list of all TLS Edges on this account

func (*Client) EdgesTLSUpdate added in v0.1.1

func (c *Client) EdgesTLSUpdate(ctx context.Context, arg *TLSEdgeUpdate) (*TLSEdge, *http.Response, error)

Updates a TLS Edge by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API.

func (*Client) EndpointBackendModuleDelete

func (c *Client) EndpointBackendModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointBackendModuleGet

func (c *Client) EndpointBackendModuleGet(ctx context.Context, arg *Item) (*EndpointBackend, *http.Response, error)

func (*Client) EndpointBackendModuleReplace

func (c *Client) EndpointBackendModuleReplace(ctx context.Context, arg *EndpointBackendReplace) (*EndpointBackend, *http.Response, error)

func (*Client) EndpointBasicAuthModuleDelete

func (c *Client) EndpointBasicAuthModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointBasicAuthModuleGet

func (c *Client) EndpointBasicAuthModuleGet(ctx context.Context, arg *Item) (*EndpointBasicAuth, *http.Response, error)

func (*Client) EndpointBasicAuthModuleReplace

func (c *Client) EndpointBasicAuthModuleReplace(ctx context.Context, arg *EndpointBasicAuthReplace) (*EndpointBasicAuth, *http.Response, error)

func (*Client) EndpointCircuitBreakerModuleDelete

func (c *Client) EndpointCircuitBreakerModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointCircuitBreakerModuleGet

func (c *Client) EndpointCircuitBreakerModuleGet(ctx context.Context, arg *Item) (*EndpointCircuitBreaker, *http.Response, error)

func (*Client) EndpointCircuitBreakerModuleReplace

func (c *Client) EndpointCircuitBreakerModuleReplace(ctx context.Context, arg *EndpointCircuitBreakerReplace) (*EndpointCircuitBreaker, *http.Response, error)

func (*Client) EndpointCompressionModuleDelete

func (c *Client) EndpointCompressionModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointCompressionModuleGet

func (c *Client) EndpointCompressionModuleGet(ctx context.Context, arg *Item) (*EndpointCompression, *http.Response, error)

func (*Client) EndpointCompressionModuleReplace

func (c *Client) EndpointCompressionModuleReplace(ctx context.Context, arg *EndpointCompressionReplace) (*EndpointCompression, *http.Response, error)

func (*Client) EndpointConfigurationsCreate

func (c *Client) EndpointConfigurationsCreate(ctx context.Context, arg *EndpointConfigurationCreate) (*EndpointConfiguration, *http.Response, error)

Create a new endpoint configuration

func (*Client) EndpointConfigurationsDelete

func (c *Client) EndpointConfigurationsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an endpoint configuration. This operation will fail if the endpoint configuration is still referenced by any reserved domain or reserved address.

func (*Client) EndpointConfigurationsGet

func (c *Client) EndpointConfigurationsGet(ctx context.Context, arg *Item) (*EndpointConfiguration, *http.Response, error)

Returns detailed information about an endpoint configuration

func (*Client) EndpointConfigurationsList

func (c *Client) EndpointConfigurationsList(ctx context.Context, arg *Paging) (*EndpointConfigurationList, *http.Response, error)

Returns a list of all endpoint configurations on this account

func (*Client) EndpointConfigurationsUpdate

func (c *Client) EndpointConfigurationsUpdate(ctx context.Context, arg *EndpointConfigurationUpdate) (*EndpointConfiguration, *http.Response, error)

Updates an endpoint configuration. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API.

func (*Client) EndpointIPPolicyModuleDelete

func (c *Client) EndpointIPPolicyModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointIPPolicyModuleGet

func (c *Client) EndpointIPPolicyModuleGet(ctx context.Context, arg *Item) (*EndpointIPPolicy, *http.Response, error)

func (*Client) EndpointIPPolicyModuleReplace

func (c *Client) EndpointIPPolicyModuleReplace(ctx context.Context, arg *EndpointIPPolicyReplace) (*EndpointIPPolicy, *http.Response, error)

func (*Client) EndpointMutualTLSModuleDelete

func (c *Client) EndpointMutualTLSModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointMutualTLSModuleGet

func (c *Client) EndpointMutualTLSModuleGet(ctx context.Context, arg *Item) (*EndpointMutualTLS, *http.Response, error)

func (*Client) EndpointMutualTLSModuleReplace

func (c *Client) EndpointMutualTLSModuleReplace(ctx context.Context, arg *EndpointMutualTLSReplace) (*EndpointMutualTLS, *http.Response, error)

func (*Client) EndpointOAuthModuleDelete

func (c *Client) EndpointOAuthModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointOAuthModuleGet

func (c *Client) EndpointOAuthModuleGet(ctx context.Context, arg *Item) (*EndpointOAuth, *http.Response, error)

func (*Client) EndpointOAuthModuleReplace

func (c *Client) EndpointOAuthModuleReplace(ctx context.Context, arg *EndpointOAuthReplace) (*EndpointOAuth, *http.Response, error)

func (*Client) EndpointOIDCModuleDelete

func (c *Client) EndpointOIDCModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointOIDCModuleGet

func (c *Client) EndpointOIDCModuleGet(ctx context.Context, arg *Item) (*EndpointOIDC, *http.Response, error)

func (*Client) EndpointOIDCModuleReplace

func (c *Client) EndpointOIDCModuleReplace(ctx context.Context, arg *EndpointOIDCReplace) (*EndpointOIDC, *http.Response, error)

func (*Client) EndpointRequestHeadersModuleDelete

func (c *Client) EndpointRequestHeadersModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointRequestHeadersModuleGet

func (c *Client) EndpointRequestHeadersModuleGet(ctx context.Context, arg *Item) (*EndpointRequestHeaders, *http.Response, error)

func (*Client) EndpointRequestHeadersModuleReplace

func (c *Client) EndpointRequestHeadersModuleReplace(ctx context.Context, arg *EndpointRequestHeadersReplace) (*EndpointRequestHeaders, *http.Response, error)

func (*Client) EndpointResponseHeadersModuleDelete

func (c *Client) EndpointResponseHeadersModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointResponseHeadersModuleGet

func (c *Client) EndpointResponseHeadersModuleGet(ctx context.Context, arg *Item) (*EndpointResponseHeaders, *http.Response, error)

func (*Client) EndpointResponseHeadersModuleReplace

func (c *Client) EndpointResponseHeadersModuleReplace(ctx context.Context, arg *EndpointResponseHeadersReplace) (*EndpointResponseHeaders, *http.Response, error)

func (*Client) EndpointSAMLModuleDelete

func (c *Client) EndpointSAMLModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointSAMLModuleGet

func (c *Client) EndpointSAMLModuleGet(ctx context.Context, arg *Item) (*EndpointSAML, *http.Response, error)

func (*Client) EndpointSAMLModuleReplace

func (c *Client) EndpointSAMLModuleReplace(ctx context.Context, arg *EndpointSAMLReplace) (*EndpointSAML, *http.Response, error)

func (*Client) EndpointTLSTerminationModuleDelete

func (c *Client) EndpointTLSTerminationModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointTLSTerminationModuleGet

func (c *Client) EndpointTLSTerminationModuleGet(ctx context.Context, arg *Item) (*EndpointTLSTermination, *http.Response, error)

func (*Client) EndpointTLSTerminationModuleReplace

func (c *Client) EndpointTLSTerminationModuleReplace(ctx context.Context, arg *EndpointTLSTerminationReplace) (*EndpointTLSTermination, *http.Response, error)

func (*Client) EndpointWebhookValidationModuleDelete

func (c *Client) EndpointWebhookValidationModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) EndpointWebhookValidationModuleGet

func (c *Client) EndpointWebhookValidationModuleGet(ctx context.Context, arg *Item) (*EndpointWebhookValidation, *http.Response, error)

func (*Client) EndpointWebhookValidationModuleReplace

func (c *Client) EndpointWebhookValidationModuleReplace(ctx context.Context, arg *EndpointWebhookValidationReplace) (*EndpointWebhookValidation, *http.Response, error)

func (*Client) EndpointsCreate added in v0.4.0

func (c *Client) EndpointsCreate(ctx context.Context, arg *EndpointCreate) (*Endpoint, *http.Response, error)

Create an endpoint, currently available only for cloud endpoints

func (*Client) EndpointsDelete added in v0.4.0

func (c *Client) EndpointsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an Endpoint by ID, currently available only for cloud endpoints

func (*Client) EndpointsGet added in v0.1.4

func (c *Client) EndpointsGet(ctx context.Context, arg *Item) (*Endpoint, *http.Response, error)

Get the status of an endpoint by ID

func (*Client) EndpointsList added in v0.1.4

func (c *Client) EndpointsList(ctx context.Context, arg *Paging) (*EndpointList, *http.Response, error)

List all active endpoints on the account

func (*Client) EndpointsUpdate added in v0.4.0

func (c *Client) EndpointsUpdate(ctx context.Context, arg *EndpointUpdate) (*Endpoint, *http.Response, error)

Update an Endpoint by ID, currently available only for cloud endpoints

func (*Client) EventDestinationsCreate

func (c *Client) EventDestinationsCreate(ctx context.Context, arg *EventDestinationCreate) (*EventDestination, *http.Response, error)

Create a new Event Destination. It will not apply to anything until it is associated with an Event Subscription.

func (*Client) EventDestinationsDelete

func (c *Client) EventDestinationsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an Event Destination. If the Event Destination is still referenced by an Event Subscription.

func (*Client) EventDestinationsGet

func (c *Client) EventDestinationsGet(ctx context.Context, arg *Item) (*EventDestination, *http.Response, error)

Get detailed information about an Event Destination by ID.

func (*Client) EventDestinationsList

func (c *Client) EventDestinationsList(ctx context.Context, arg *Paging) (*EventDestinationList, *http.Response, error)

List all Event Destinations on this account.

func (*Client) EventDestinationsSendTestEvent

func (c *Client) EventDestinationsSendTestEvent(ctx context.Context, arg *Item) (*SentEvent, *http.Response, error)

Send a test event to an Event Destination

func (*Client) EventDestinationsUpdate

func (c *Client) EventDestinationsUpdate(ctx context.Context, arg *EventDestinationUpdate) (*EventDestination, *http.Response, error)

Update attributes of an Event Destination.

func (*Client) EventSourcesCreate

func (c *Client) EventSourcesCreate(ctx context.Context, arg *EventSourceCreate) (*EventSource, *http.Response, error)

Add an additional type for which this event subscription will trigger

func (*Client) EventSourcesDelete

func (c *Client) EventSourcesDelete(ctx context.Context, arg *EventSourceItem) (*Empty, *http.Response, error)

Remove a type for which this event subscription will trigger

func (*Client) EventSourcesGet

func (c *Client) EventSourcesGet(ctx context.Context, arg *EventSourceItem) (*EventSource, *http.Response, error)

Get the details for a given type that triggers for the given event subscription

func (*Client) EventSourcesList

func (c *Client) EventSourcesList(ctx context.Context, arg *EventSourcePaging) (*EventSourceList, *http.Response, error)

List the types for which this event subscription will trigger

func (*Client) EventSourcesUpdate

func (c *Client) EventSourcesUpdate(ctx context.Context, arg *EventSourceUpdate) (*EventSource, *http.Response, error)

Update the type for which this event subscription will trigger

func (*Client) EventSubscriptionsCreate

func (c *Client) EventSubscriptionsCreate(ctx context.Context, arg *EventSubscriptionCreate) (*EventSubscription, *http.Response, error)

Create an Event Subscription.

func (*Client) EventSubscriptionsDelete

func (c *Client) EventSubscriptionsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an Event Subscription.

func (*Client) EventSubscriptionsGet

func (c *Client) EventSubscriptionsGet(ctx context.Context, arg *Item) (*EventSubscription, *http.Response, error)

Get an Event Subscription by ID.

func (*Client) EventSubscriptionsList

func (c *Client) EventSubscriptionsList(ctx context.Context, arg *Paging) (*EventSubscriptionList, *http.Response, error)

List this Account's Event Subscriptions.

func (*Client) EventSubscriptionsUpdate

func (c *Client) EventSubscriptionsUpdate(ctx context.Context, arg *EventSubscriptionUpdate) (*EventSubscription, *http.Response, error)

Update an Event Subscription.

func (*Client) FailoverBackendsCreate added in v0.1.4

func (c *Client) FailoverBackendsCreate(ctx context.Context, arg *FailoverBackendCreate) (*FailoverBackend, *http.Response, error)

Create a new Failover backend

func (*Client) FailoverBackendsDelete added in v0.1.4

func (c *Client) FailoverBackendsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a Failover backend by ID.

func (*Client) FailoverBackendsGet added in v0.1.4

func (c *Client) FailoverBackendsGet(ctx context.Context, arg *Item) (*FailoverBackend, *http.Response, error)

Get detailed information about a Failover backend by ID

func (*Client) FailoverBackendsList added in v0.1.4

func (c *Client) FailoverBackendsList(ctx context.Context, arg *Paging) (*FailoverBackendList, *http.Response, error)

List all Failover backends on this account

func (*Client) FailoverBackendsUpdate added in v0.1.4

func (c *Client) FailoverBackendsUpdate(ctx context.Context, arg *FailoverBackendUpdate) (*FailoverBackend, *http.Response, error)

Update Failover backend by ID

func (*Client) Get

func (c *Client) Get(ctx context.Context, path string, resp interface{}) (*http.Response, error)

func (*Client) HTTPResponseBackendsCreate added in v0.1.4

func (c *Client) HTTPResponseBackendsCreate(ctx context.Context, arg *HTTPResponseBackendCreate) (*HTTPResponseBackend, *http.Response, error)

func (*Client) HTTPResponseBackendsDelete added in v0.1.4

func (c *Client) HTTPResponseBackendsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) HTTPResponseBackendsGet added in v0.1.4

func (c *Client) HTTPResponseBackendsGet(ctx context.Context, arg *Item) (*HTTPResponseBackend, *http.Response, error)

func (*Client) HTTPResponseBackendsList added in v0.1.4

func (c *Client) HTTPResponseBackendsList(ctx context.Context, arg *Paging) (*HTTPResponseBackendList, *http.Response, error)

func (*Client) HTTPResponseBackendsUpdate added in v0.1.4

func (c *Client) HTTPResponseBackendsUpdate(ctx context.Context, arg *HTTPResponseBackendUpdate) (*HTTPResponseBackend, *http.Response, error)

func (*Client) HTTPSEdgeMutualTLSModuleDelete added in v0.1.4

func (c *Client) HTTPSEdgeMutualTLSModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) HTTPSEdgeMutualTLSModuleGet added in v0.1.4

func (c *Client) HTTPSEdgeMutualTLSModuleGet(ctx context.Context, arg *Item) (*EndpointMutualTLS, *http.Response, error)

func (*Client) HTTPSEdgeMutualTLSModuleReplace added in v0.1.4

func (c *Client) HTTPSEdgeMutualTLSModuleReplace(ctx context.Context, arg *EdgeMutualTLSReplace) (*EndpointMutualTLS, *http.Response, error)

func (*Client) HTTPSEdgeTLSTerminationModuleDelete added in v0.1.4

func (c *Client) HTTPSEdgeTLSTerminationModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) HTTPSEdgeTLSTerminationModuleGet added in v0.1.4

func (c *Client) HTTPSEdgeTLSTerminationModuleGet(ctx context.Context, arg *Item) (*EndpointTLSTermination, *http.Response, error)

func (*Client) HTTPSEdgeTLSTerminationModuleReplace added in v0.1.4

func (c *Client) HTTPSEdgeTLSTerminationModuleReplace(ctx context.Context, arg *EdgeTLSTerminationAtEdgeReplace) (*EndpointTLSTermination, *http.Response, error)

func (*Client) IPPoliciesCreate

func (c *Client) IPPoliciesCreate(ctx context.Context, arg *IPPolicyCreate) (*IPPolicy, *http.Response, error)

Create a new IP policy. It will not apply to any traffic until you associate to a traffic source via an endpoint configuration or IP restriction.

func (*Client) IPPoliciesDelete

func (c *Client) IPPoliciesDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an IP policy. If the IP policy is referenced by another object for the purposes of traffic restriction it will be treated as if the IP policy remains but has zero rules.

func (*Client) IPPoliciesGet

func (c *Client) IPPoliciesGet(ctx context.Context, arg *Item) (*IPPolicy, *http.Response, error)

Get detailed information about an IP policy by ID.

func (*Client) IPPoliciesList

func (c *Client) IPPoliciesList(ctx context.Context, arg *Paging) (*IPPolicyList, *http.Response, error)

List all IP policies on this account

func (*Client) IPPoliciesUpdate

func (c *Client) IPPoliciesUpdate(ctx context.Context, arg *IPPolicyUpdate) (*IPPolicy, *http.Response, error)

Update attributes of an IP policy by ID

func (*Client) IPPolicyRulesCreate

func (c *Client) IPPolicyRulesCreate(ctx context.Context, arg *IPPolicyRuleCreate) (*IPPolicyRule, *http.Response, error)

Create a new IP policy rule attached to an IP Policy.

func (*Client) IPPolicyRulesDelete

func (c *Client) IPPolicyRulesDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an IP policy rule.

func (*Client) IPPolicyRulesGet

func (c *Client) IPPolicyRulesGet(ctx context.Context, arg *Item) (*IPPolicyRule, *http.Response, error)

Get detailed information about an IP policy rule by ID.

func (*Client) IPPolicyRulesList

func (c *Client) IPPolicyRulesList(ctx context.Context, arg *Paging) (*IPPolicyRuleList, *http.Response, error)

List all IP policy rules on this account

func (*Client) IPPolicyRulesUpdate

func (c *Client) IPPolicyRulesUpdate(ctx context.Context, arg *IPPolicyRuleUpdate) (*IPPolicyRule, *http.Response, error)

Update attributes of an IP policy rule by ID

func (*Client) IPRestrictionsCreate

func (c *Client) IPRestrictionsCreate(ctx context.Context, arg *IPRestrictionCreate) (*IPRestriction, *http.Response, error)

Create a new IP restriction

func (*Client) IPRestrictionsDelete

func (c *Client) IPRestrictionsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an IP restriction

func (*Client) IPRestrictionsGet

func (c *Client) IPRestrictionsGet(ctx context.Context, arg *Item) (*IPRestriction, *http.Response, error)

Get detailed information about an IP restriction

func (*Client) IPRestrictionsList

func (c *Client) IPRestrictionsList(ctx context.Context, arg *Paging) (*IPRestrictionList, *http.Response, error)

List all IP restrictions on this account

func (*Client) IPRestrictionsUpdate

func (c *Client) IPRestrictionsUpdate(ctx context.Context, arg *IPRestrictionUpdate) (*IPRestriction, *http.Response, error)

Update attributes of an IP restriction by ID

func (*Client) KubernetesOperatorsCreate added in v0.4.0

func (c *Client) KubernetesOperatorsCreate(ctx context.Context, arg *KubernetesOperatorCreate) (*KubernetesOperator, *http.Response, error)

Create a new Kubernetes Operator

func (*Client) KubernetesOperatorsDelete added in v0.4.0

func (c *Client) KubernetesOperatorsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a Kubernetes Operator

func (*Client) KubernetesOperatorsGet added in v0.4.0

func (c *Client) KubernetesOperatorsGet(ctx context.Context, arg *Item) (*KubernetesOperator, *http.Response, error)

Get of a Kubernetes Operator

func (*Client) KubernetesOperatorsList added in v0.4.0

func (c *Client) KubernetesOperatorsList(ctx context.Context, arg *Paging) (*KubernetesOperatorList, *http.Response, error)

List all Kubernetes Operators owned by this account

func (*Client) KubernetesOperatorsUpdate added in v0.4.0

func (c *Client) KubernetesOperatorsUpdate(ctx context.Context, arg *KubernetesOperatorUpdate) (*KubernetesOperator, *http.Response, error)

Update an existing Kubernetes operator by ID.

func (*Client) MakeRequest

func (c *Client) MakeRequest(ctx context.Context, method, path string, data interface{}) (*http.Request, error)

func (*Client) Options

func (c *Client) Options(ctx context.Context, method, path string) (*http.Response, error)

func (*Client) Patch

func (c *Client) Patch(ctx context.Context, path string, body, resp interface{}) (*http.Response, error)

func (*Client) Post

func (c *Client) Post(ctx context.Context, path string, body, resp interface{}) (*http.Response, error)

func (*Client) Put

func (c *Client) Put(ctx context.Context, path string, body, resp interface{}) (*http.Response, error)

func (*Client) ReadResponse

func (c *Client) ReadResponse(req *http.Request, out interface{}) (*http.Response, error)

func (*Client) ReservedAddrsCreate

func (c *Client) ReservedAddrsCreate(ctx context.Context, arg *ReservedAddrCreate) (*ReservedAddr, *http.Response, error)

Create a new reserved address.

func (*Client) ReservedAddrsDelete

func (c *Client) ReservedAddrsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a reserved address.

func (*Client) ReservedAddrsDeleteEndpointConfig

func (c *Client) ReservedAddrsDeleteEndpointConfig(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Detach the endpoint configuration attached to a reserved address.

func (*Client) ReservedAddrsGet

func (c *Client) ReservedAddrsGet(ctx context.Context, arg *Item) (*ReservedAddr, *http.Response, error)

Get the details of a reserved address.

func (*Client) ReservedAddrsList

func (c *Client) ReservedAddrsList(ctx context.Context, arg *Paging) (*ReservedAddrList, *http.Response, error)

List all reserved addresses on this account.

func (*Client) ReservedAddrsUpdate

func (c *Client) ReservedAddrsUpdate(ctx context.Context, arg *ReservedAddrUpdate) (*ReservedAddr, *http.Response, error)

Update the attributes of a reserved address.

func (*Client) ReservedDomainsCreate

func (c *Client) ReservedDomainsCreate(ctx context.Context, arg *ReservedDomainCreate) (*ReservedDomain, *http.Response, error)

Create a new reserved domain.

func (*Client) ReservedDomainsDelete

func (c *Client) ReservedDomainsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a reserved domain.

func (*Client) ReservedDomainsDeleteCertificate

func (c *Client) ReservedDomainsDeleteCertificate(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Detach the certificate attached to a reserved domain.

func (*Client) ReservedDomainsDeleteCertificateManagementPolicy

func (c *Client) ReservedDomainsDeleteCertificateManagementPolicy(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Detach the certificate management policy attached to a reserved domain.

func (*Client) ReservedDomainsDeleteHTTPEndpointConfig

func (c *Client) ReservedDomainsDeleteHTTPEndpointConfig(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Detach the http endpoint configuration attached to a reserved domain.

func (*Client) ReservedDomainsDeleteHTTPSEndpointConfig

func (c *Client) ReservedDomainsDeleteHTTPSEndpointConfig(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Detach the https endpoint configuration attached to a reserved domain.

func (*Client) ReservedDomainsGet

func (c *Client) ReservedDomainsGet(ctx context.Context, arg *Item) (*ReservedDomain, *http.Response, error)

Get the details of a reserved domain.

func (*Client) ReservedDomainsList

func (c *Client) ReservedDomainsList(ctx context.Context, arg *Paging) (*ReservedDomainList, *http.Response, error)

List all reserved domains on this account.

func (*Client) ReservedDomainsUpdate

func (c *Client) ReservedDomainsUpdate(ctx context.Context, arg *ReservedDomainUpdate) (*ReservedDomain, *http.Response, error)

Update the attributes of a reserved domain.

func (*Client) RootGet

func (c *Client) RootGet(ctx context.Context, arg *Empty) (*RootResponse, *http.Response, error)

func (*Client) SSHCertificateAuthoritiesCreate

func (c *Client) SSHCertificateAuthoritiesCreate(ctx context.Context, arg *SSHCertificateAuthorityCreate) (*SSHCertificateAuthority, *http.Response, error)

Create a new SSH Certificate Authority

func (*Client) SSHCertificateAuthoritiesDelete

func (c *Client) SSHCertificateAuthoritiesDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an SSH Certificate Authority

func (*Client) SSHCertificateAuthoritiesGet

func (c *Client) SSHCertificateAuthoritiesGet(ctx context.Context, arg *Item) (*SSHCertificateAuthority, *http.Response, error)

Get detailed information about an SSH Certficate Authority

func (*Client) SSHCertificateAuthoritiesList

func (c *Client) SSHCertificateAuthoritiesList(ctx context.Context, arg *Paging) (*SSHCertificateAuthorityList, *http.Response, error)

List all SSH Certificate Authorities on this account

func (*Client) SSHCertificateAuthoritiesUpdate

func (c *Client) SSHCertificateAuthoritiesUpdate(ctx context.Context, arg *SSHCertificateAuthorityUpdate) (*SSHCertificateAuthority, *http.Response, error)

Update an SSH Certificate Authority

func (*Client) SSHCredentialsCreate

func (c *Client) SSHCredentialsCreate(ctx context.Context, arg *SSHCredentialCreate) (*SSHCredential, *http.Response, error)

Create a new ssh_credential from an uploaded public SSH key. This ssh credential can be used to start new tunnels via ngrok's SSH gateway.

func (*Client) SSHCredentialsDelete

func (c *Client) SSHCredentialsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an ssh_credential by ID

func (*Client) SSHCredentialsGet

func (c *Client) SSHCredentialsGet(ctx context.Context, arg *Item) (*SSHCredential, *http.Response, error)

Get detailed information about an ssh_credential

func (*Client) SSHCredentialsList

func (c *Client) SSHCredentialsList(ctx context.Context, arg *Paging) (*SSHCredentialList, *http.Response, error)

List all ssh credentials on this account

func (*Client) SSHCredentialsUpdate

func (c *Client) SSHCredentialsUpdate(ctx context.Context, arg *SSHCredentialUpdate) (*SSHCredential, *http.Response, error)

Update attributes of an ssh_credential by ID

func (*Client) SSHHostCertificatesCreate

func (c *Client) SSHHostCertificatesCreate(ctx context.Context, arg *SSHHostCertificateCreate) (*SSHHostCertificate, *http.Response, error)

Create a new SSH Host Certificate

func (*Client) SSHHostCertificatesDelete

func (c *Client) SSHHostCertificatesDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an SSH Host Certificate

func (*Client) SSHHostCertificatesGet

func (c *Client) SSHHostCertificatesGet(ctx context.Context, arg *Item) (*SSHHostCertificate, *http.Response, error)

Get detailed information about an SSH Host Certficate

func (*Client) SSHHostCertificatesList

func (c *Client) SSHHostCertificatesList(ctx context.Context, arg *Paging) (*SSHHostCertificateList, *http.Response, error)

List all SSH Host Certificates issued on this account

func (*Client) SSHHostCertificatesUpdate

func (c *Client) SSHHostCertificatesUpdate(ctx context.Context, arg *SSHHostCertificateUpdate) (*SSHHostCertificate, *http.Response, error)

Update an SSH Host Certificate

func (*Client) SSHUserCertificatesCreate

func (c *Client) SSHUserCertificatesCreate(ctx context.Context, arg *SSHUserCertificateCreate) (*SSHUserCertificate, *http.Response, error)

Create a new SSH User Certificate

func (*Client) SSHUserCertificatesDelete

func (c *Client) SSHUserCertificatesDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete an SSH User Certificate

func (*Client) SSHUserCertificatesGet

func (c *Client) SSHUserCertificatesGet(ctx context.Context, arg *Item) (*SSHUserCertificate, *http.Response, error)

Get detailed information about an SSH User Certficate

func (*Client) SSHUserCertificatesList

func (c *Client) SSHUserCertificatesList(ctx context.Context, arg *Paging) (*SSHUserCertificateList, *http.Response, error)

List all SSH User Certificates issued on this account

func (*Client) SSHUserCertificatesUpdate

func (c *Client) SSHUserCertificatesUpdate(ctx context.Context, arg *SSHUserCertificateUpdate) (*SSHUserCertificate, *http.Response, error)

Update an SSH User Certificate

func (*Client) SetForwardedFor

func (c *Client) SetForwardedFor(forwarded_for string)

func (*Client) SetOrigin

func (c *Client) SetOrigin(origin string)

func (*Client) SetVersion

func (c *Client) SetVersion(version int)

func (*Client) StaticBackendsCreate

func (c *Client) StaticBackendsCreate(ctx context.Context, arg *StaticBackendCreate) (*StaticBackend, *http.Response, error)

Create a new static backend

func (*Client) StaticBackendsDelete

func (c *Client) StaticBackendsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a static backend by ID.

func (*Client) StaticBackendsGet

func (c *Client) StaticBackendsGet(ctx context.Context, arg *Item) (*StaticBackend, *http.Response, error)

Get detailed information about a static backend by ID

func (*Client) StaticBackendsList

func (c *Client) StaticBackendsList(ctx context.Context, arg *Paging) (*StaticBackendList, *http.Response, error)

List all static backends on this account

func (*Client) StaticBackendsUpdate

func (c *Client) StaticBackendsUpdate(ctx context.Context, arg *StaticBackendUpdate) (*StaticBackend, *http.Response, error)

Update static backend by ID

func (*Client) TCPEdgeBackendModuleDelete added in v0.1.4

func (c *Client) TCPEdgeBackendModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) TCPEdgeBackendModuleGet added in v0.1.4

func (c *Client) TCPEdgeBackendModuleGet(ctx context.Context, arg *Item) (*EndpointBackend, *http.Response, error)

func (*Client) TCPEdgeBackendModuleReplace added in v0.1.4

func (c *Client) TCPEdgeBackendModuleReplace(ctx context.Context, arg *EdgeBackendReplace) (*EndpointBackend, *http.Response, error)

func (*Client) TCPEdgeIPRestrictionModuleDelete added in v0.1.4

func (c *Client) TCPEdgeIPRestrictionModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) TCPEdgeIPRestrictionModuleGet added in v0.1.4

func (c *Client) TCPEdgeIPRestrictionModuleGet(ctx context.Context, arg *Item) (*EndpointIPPolicy, *http.Response, error)

func (*Client) TCPEdgeIPRestrictionModuleReplace added in v0.1.4

func (c *Client) TCPEdgeIPRestrictionModuleReplace(ctx context.Context, arg *EdgeIPRestrictionReplace) (*EndpointIPPolicy, *http.Response, error)

func (*Client) TCPEdgePolicyModuleDelete added in v0.3.0

func (c *Client) TCPEdgePolicyModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) TCPEdgePolicyModuleGet added in v0.3.0

func (c *Client) TCPEdgePolicyModuleGet(ctx context.Context, arg *Item) (*EndpointPolicy, *http.Response, error)

func (*Client) TCPEdgePolicyModuleReplace added in v0.3.0

func (c *Client) TCPEdgePolicyModuleReplace(ctx context.Context, arg *EdgePolicyReplace) (*EndpointPolicy, *http.Response, error)

func (*Client) TCPEdgeTrafficPolicyModuleDelete added in v0.4.0

func (c *Client) TCPEdgeTrafficPolicyModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) TCPEdgeTrafficPolicyModuleGet added in v0.4.0

func (c *Client) TCPEdgeTrafficPolicyModuleGet(ctx context.Context, arg *Item) (*EndpointTrafficPolicy, *http.Response, error)

func (*Client) TCPEdgeTrafficPolicyModuleReplace added in v0.4.0

func (c *Client) TCPEdgeTrafficPolicyModuleReplace(ctx context.Context, arg *EdgeTrafficPolicyReplace) (*EndpointTrafficPolicy, *http.Response, error)

func (*Client) TLSCertificatesCreate

func (c *Client) TLSCertificatesCreate(ctx context.Context, arg *TLSCertificateCreate) (*TLSCertificate, *http.Response, error)

Upload a new TLS certificate

func (*Client) TLSCertificatesDelete

func (c *Client) TLSCertificatesDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a TLS certificate

func (*Client) TLSCertificatesGet

func (c *Client) TLSCertificatesGet(ctx context.Context, arg *Item) (*TLSCertificate, *http.Response, error)

Get detailed information about a TLS certificate

func (*Client) TLSCertificatesList

func (c *Client) TLSCertificatesList(ctx context.Context, arg *Paging) (*TLSCertificateList, *http.Response, error)

List all TLS certificates on this account

func (*Client) TLSCertificatesUpdate

func (c *Client) TLSCertificatesUpdate(ctx context.Context, arg *TLSCertificateUpdate) (*TLSCertificate, *http.Response, error)

Update attributes of a TLS Certificate by ID

func (*Client) TLSEdgeBackendModuleDelete added in v0.1.4

func (c *Client) TLSEdgeBackendModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) TLSEdgeBackendModuleGet added in v0.1.4

func (c *Client) TLSEdgeBackendModuleGet(ctx context.Context, arg *Item) (*EndpointBackend, *http.Response, error)

func (*Client) TLSEdgeBackendModuleReplace added in v0.1.4

func (c *Client) TLSEdgeBackendModuleReplace(ctx context.Context, arg *EdgeBackendReplace) (*EndpointBackend, *http.Response, error)

func (*Client) TLSEdgeIPRestrictionModuleDelete added in v0.1.4

func (c *Client) TLSEdgeIPRestrictionModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) TLSEdgeIPRestrictionModuleGet added in v0.1.4

func (c *Client) TLSEdgeIPRestrictionModuleGet(ctx context.Context, arg *Item) (*EndpointIPPolicy, *http.Response, error)

func (*Client) TLSEdgeIPRestrictionModuleReplace added in v0.1.4

func (c *Client) TLSEdgeIPRestrictionModuleReplace(ctx context.Context, arg *EdgeIPRestrictionReplace) (*EndpointIPPolicy, *http.Response, error)

func (*Client) TLSEdgeMutualTLSModuleDelete added in v0.1.4

func (c *Client) TLSEdgeMutualTLSModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) TLSEdgeMutualTLSModuleGet added in v0.1.4

func (c *Client) TLSEdgeMutualTLSModuleGet(ctx context.Context, arg *Item) (*EndpointMutualTLS, *http.Response, error)

func (*Client) TLSEdgeMutualTLSModuleReplace added in v0.1.4

func (c *Client) TLSEdgeMutualTLSModuleReplace(ctx context.Context, arg *EdgeMutualTLSReplace) (*EndpointMutualTLS, *http.Response, error)

func (*Client) TLSEdgePolicyModuleDelete added in v0.3.0

func (c *Client) TLSEdgePolicyModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) TLSEdgePolicyModuleGet added in v0.3.0

func (c *Client) TLSEdgePolicyModuleGet(ctx context.Context, arg *Item) (*EndpointPolicy, *http.Response, error)

func (*Client) TLSEdgePolicyModuleReplace added in v0.3.0

func (c *Client) TLSEdgePolicyModuleReplace(ctx context.Context, arg *EdgePolicyReplace) (*EndpointPolicy, *http.Response, error)

func (*Client) TLSEdgeTLSTerminationModuleDelete added in v0.1.4

func (c *Client) TLSEdgeTLSTerminationModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) TLSEdgeTLSTerminationModuleGet added in v0.1.4

func (c *Client) TLSEdgeTLSTerminationModuleGet(ctx context.Context, arg *Item) (*EndpointTLSTermination, *http.Response, error)

func (*Client) TLSEdgeTLSTerminationModuleReplace added in v0.1.4

func (c *Client) TLSEdgeTLSTerminationModuleReplace(ctx context.Context, arg *EdgeTLSTerminationReplace) (*EndpointTLSTermination, *http.Response, error)

func (*Client) TLSEdgeTrafficPolicyModuleDelete added in v0.4.0

func (c *Client) TLSEdgeTrafficPolicyModuleDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

func (*Client) TLSEdgeTrafficPolicyModuleGet added in v0.4.0

func (c *Client) TLSEdgeTrafficPolicyModuleGet(ctx context.Context, arg *Item) (*EndpointTrafficPolicy, *http.Response, error)

func (*Client) TLSEdgeTrafficPolicyModuleReplace added in v0.4.0

func (c *Client) TLSEdgeTrafficPolicyModuleReplace(ctx context.Context, arg *EdgeTrafficPolicyReplace) (*EndpointTrafficPolicy, *http.Response, error)

func (*Client) TunnelGroupBackendsCreate

func (c *Client) TunnelGroupBackendsCreate(ctx context.Context, arg *TunnelGroupBackendCreate) (*TunnelGroupBackend, *http.Response, error)

Create a new TunnelGroup backend

func (*Client) TunnelGroupBackendsDelete

func (c *Client) TunnelGroupBackendsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a TunnelGroup backend by ID.

func (*Client) TunnelGroupBackendsGet

func (c *Client) TunnelGroupBackendsGet(ctx context.Context, arg *Item) (*TunnelGroupBackend, *http.Response, error)

Get detailed information about a TunnelGroup backend by ID

func (*Client) TunnelGroupBackendsList

func (c *Client) TunnelGroupBackendsList(ctx context.Context, arg *Paging) (*TunnelGroupBackendList, *http.Response, error)

List all TunnelGroup backends on this account

func (*Client) TunnelGroupBackendsUpdate

func (c *Client) TunnelGroupBackendsUpdate(ctx context.Context, arg *TunnelGroupBackendUpdate) (*TunnelGroupBackend, *http.Response, error)

Update TunnelGroup backend by ID

func (*Client) TunnelSessionsGet

func (c *Client) TunnelSessionsGet(ctx context.Context, arg *Item) (*TunnelSession, *http.Response, error)

Get the detailed status of a tunnel session by ID

func (*Client) TunnelSessionsList

func (c *Client) TunnelSessionsList(ctx context.Context, arg *Paging) (*TunnelSessionList, *http.Response, error)

List all online tunnel sessions running on this account.

func (*Client) TunnelSessionsRestart

func (c *Client) TunnelSessionsRestart(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Issues a command instructing the ngrok agent to restart. The agent restarts itself by calling exec() on platforms that support it. This operation is notably not supported on Windows. When an agent restarts, it reconnects with a new tunnel session ID.

func (*Client) TunnelSessionsStop

func (c *Client) TunnelSessionsStop(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Issues a command instructing the ngrok agent that started this tunnel session to exit.

func (*Client) TunnelSessionsUpdate

func (c *Client) TunnelSessionsUpdate(ctx context.Context, arg *TunnelSessionsUpdate) (*Empty, *http.Response, error)

Issues a command instructing the ngrok agent to update itself to the latest version. After this call completes successfully, the ngrok agent will be in the update process. A caller should wait some amount of time to allow the update to complete (at least 10 seconds) before making a call to the Restart endpoint to request that the agent restart itself to start using the new code. This call will never update an ngrok agent to a new major version which could cause breaking compatibility issues. If you wish to update to a new major version, that must be done manually. Still, please be aware that updating your ngrok agent could break your integration. This call will fail in any of the following circumstances: there is no update available the ngrok agent's configuration disabled update checks the agent is currently in process of updating the agent has already successfully updated but has not yet been restarted

func (*Client) TunnelsGet added in v0.1.4

func (c *Client) TunnelsGet(ctx context.Context, arg *Item) (*Tunnel, *http.Response, error)

Get the status of a tunnel by ID

func (*Client) TunnelsList

func (c *Client) TunnelsList(ctx context.Context, arg *Paging) (*TunnelList, *http.Response, error)

List all online tunnels currently running on the account.

func (*Client) WeightedBackendsCreate

func (c *Client) WeightedBackendsCreate(ctx context.Context, arg *WeightedBackendCreate) (*WeightedBackend, *http.Response, error)

Create a new Weighted backend

func (*Client) WeightedBackendsDelete

func (c *Client) WeightedBackendsDelete(ctx context.Context, arg *Item) (*Empty, *http.Response, error)

Delete a Weighted backend by ID.

func (*Client) WeightedBackendsGet

func (c *Client) WeightedBackendsGet(ctx context.Context, arg *Item) (*WeightedBackend, *http.Response, error)

Get detailed information about a Weighted backend by ID

func (*Client) WeightedBackendsList

func (c *Client) WeightedBackendsList(ctx context.Context, arg *Paging) (*WeightedBackendList, *http.Response, error)

List all Weighted backends on this account

func (*Client) WeightedBackendsUpdate

func (c *Client) WeightedBackendsUpdate(ctx context.Context, arg *WeightedBackendUpdate) (*WeightedBackend, *http.Response, error)

Update Weighted backend by ID

type ClientConfig

type ClientConfig struct {
	HTTPClient *http.Client
	BaseURL    string
	Version    string
	APIKey     string
	Debug      Debug
}

type Credential

type Credential struct {
	// unique tunnel credential resource identifier
	ID string `json:"id,omitempty"`
	// URI of the tunnel credential API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the tunnel credential was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of who or what will use the credential to
	// authenticate. Optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this credential. Optional, max
	// 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// the credential's authtoken that can be used to authenticate an ngrok agent. This
	// value is only available one time, on the API response from credential creation,
	// otherwise it is null.
	Token *string `json:"token,omitempty"`
	// optional list of ACL rules. If unspecified, the credential will have no
	// restrictions. The only allowed ACL rule at this time is the bind rule. The bind
	// rule allows the caller to restrict what domains, addresses, and labels the token
	// is allowed to bind. For example, to allow the token to open a tunnel on
	// example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind
	// rules for domains may specify a leading wildcard to match multiple domains with
	// a common suffix. For example, you may specify a rule of bind:*.example.com which
	// will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for
	// labels may specify a wildcard key and/or value to match multiple labels. For
	// example, you may specify a rule of bind:*=example which will allow x=example,
	// y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly
	// permit all actions.
	ACL []string `json:"acl,omitempty"`
	// If supplied at credential creation, ownership will be assigned to the specified
	// User or Bot. Only admins may specify an owner other than themselves. Defaults to
	// the authenticated User or Bot.
	OwnerID *string `json:"owner_id,omitempty"`
}

type CredentialCreate

type CredentialCreate struct {
	// human-readable description of who or what will use the credential to
	// authenticate. Optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this credential. Optional, max
	// 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// optional list of ACL rules. If unspecified, the credential will have no
	// restrictions. The only allowed ACL rule at this time is the bind rule. The bind
	// rule allows the caller to restrict what domains, addresses, and labels the token
	// is allowed to bind. For example, to allow the token to open a tunnel on
	// example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind
	// rules for domains may specify a leading wildcard to match multiple domains with
	// a common suffix. For example, you may specify a rule of bind:*.example.com which
	// will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for
	// labels may specify a wildcard key and/or value to match multiple labels. For
	// example, you may specify a rule of bind:*=example which will allow x=example,
	// y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly
	// permit all actions.
	ACL []string `json:"acl,omitempty"`
	// If supplied at credential creation, ownership will be assigned to the specified
	// User or Bot. Only admins may specify an owner other than themselves. Defaults to
	// the authenticated User or Bot.
	OwnerID *string `json:"owner_id,omitempty"`
	// If supplied at credential creation, ownership will be assigned to the specified
	// User. Only admins may specify an owner other than themselves. Both owner_id and
	// owner_email may not be specified.
	OwnerEmail string `json:"owner_email,omitempty"`
	// Only authorized accounts may supply a pre-computed token that will be associated
	// with the created credentials.
	PrecomputedToken *string `json:"precomputed_token,omitempty"`
}

type CredentialList

type CredentialList struct {
	// the list of all tunnel credentials on this account
	Credentials []Credential `json:"credentials,omitempty"`
	// URI of the tunnel credential list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type CredentialUpdate

type CredentialUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of who or what will use the credential to
	// authenticate. Optional, max 255 bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this credential. Optional, max
	// 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
	// optional list of ACL rules. If unspecified, the credential will have no
	// restrictions. The only allowed ACL rule at this time is the bind rule. The bind
	// rule allows the caller to restrict what domains, addresses, and labels the token
	// is allowed to bind. For example, to allow the token to open a tunnel on
	// example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind
	// rules for domains may specify a leading wildcard to match multiple domains with
	// a common suffix. For example, you may specify a rule of bind:*.example.com which
	// will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for
	// labels may specify a wildcard key and/or value to match multiple labels. For
	// example, you may specify a rule of bind:*=example which will allow x=example,
	// y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly
	// permit all actions.
	ACL *[]string `json:"acl,omitempty"`
}

type Debug

type Debug struct {
	Stdout, Stderr io.Writer
	Verbose        bool
	Include        bool
	DryRun         bool
}

func (*Debug) AddFlags

func (d *Debug) AddFlags(cmd Flagger, stdout, stderr io.Writer)

type EdgeBackendReplace added in v0.1.4

type EdgeBackendReplace struct {
	ID     string                `json:"id,omitempty"`
	Module EndpointBackendMutate `json:"module,omitempty"`
}

type EdgeIPRestrictionReplace added in v0.1.4

type EdgeIPRestrictionReplace struct {
	ID     string                 `json:"id,omitempty"`
	Module EndpointIPPolicyMutate `json:"module,omitempty"`
}

type EdgeMutualTLSReplace added in v0.1.4

type EdgeMutualTLSReplace struct {
	ID     string                  `json:"id,omitempty"`
	Module EndpointMutualTLSMutate `json:"module,omitempty"`
}

type EdgePolicyReplace added in v0.3.0

type EdgePolicyReplace struct {
	ID     string         `json:"id,omitempty"`
	Module EndpointPolicy `json:"module,omitempty"`
}

type EdgeRouteBackendReplace added in v0.1.4

type EdgeRouteBackendReplace struct {
	EdgeID string                `json:"edge_id,omitempty"`
	ID     string                `json:"id,omitempty"`
	Module EndpointBackendMutate `json:"module,omitempty"`
}

type EdgeRouteCircuitBreakerReplace added in v0.1.4

type EdgeRouteCircuitBreakerReplace struct {
	EdgeID string                 `json:"edge_id,omitempty"`
	ID     string                 `json:"id,omitempty"`
	Module EndpointCircuitBreaker `json:"module,omitempty"`
}

type EdgeRouteCompressionReplace added in v0.1.4

type EdgeRouteCompressionReplace struct {
	EdgeID string              `json:"edge_id,omitempty"`
	ID     string              `json:"id,omitempty"`
	Module EndpointCompression `json:"module,omitempty"`
}

type EdgeRouteIPRestrictionReplace added in v0.1.4

type EdgeRouteIPRestrictionReplace struct {
	EdgeID string                 `json:"edge_id,omitempty"`
	ID     string                 `json:"id,omitempty"`
	Module EndpointIPPolicyMutate `json:"module,omitempty"`
}

type EdgeRouteItem added in v0.1.4

type EdgeRouteItem struct {
	// unique identifier of this edge
	EdgeID string `json:"edge_id,omitempty"`
	// unique identifier of this edge route
	ID string `json:"id,omitempty"`
}

type EdgeRouteOAuthReplace added in v0.1.4

type EdgeRouteOAuthReplace struct {
	EdgeID string        `json:"edge_id,omitempty"`
	ID     string        `json:"id,omitempty"`
	Module EndpointOAuth `json:"module,omitempty"`
}

type EdgeRouteOIDCReplace added in v0.1.4

type EdgeRouteOIDCReplace struct {
	EdgeID string       `json:"edge_id,omitempty"`
	ID     string       `json:"id,omitempty"`
	Module EndpointOIDC `json:"module,omitempty"`
}

type EdgeRoutePolicyReplace added in v0.3.0

type EdgeRoutePolicyReplace struct {
	EdgeID string         `json:"edge_id,omitempty"`
	ID     string         `json:"id,omitempty"`
	Module EndpointPolicy `json:"module,omitempty"`
}

type EdgeRouteRequestHeadersReplace added in v0.1.4

type EdgeRouteRequestHeadersReplace struct {
	EdgeID string                 `json:"edge_id,omitempty"`
	ID     string                 `json:"id,omitempty"`
	Module EndpointRequestHeaders `json:"module,omitempty"`
}

type EdgeRouteResponseHeadersReplace added in v0.1.4

type EdgeRouteResponseHeadersReplace struct {
	EdgeID string                  `json:"edge_id,omitempty"`
	ID     string                  `json:"id,omitempty"`
	Module EndpointResponseHeaders `json:"module,omitempty"`
}

type EdgeRouteSAMLReplace added in v0.1.4

type EdgeRouteSAMLReplace struct {
	EdgeID string             `json:"edge_id,omitempty"`
	ID     string             `json:"id,omitempty"`
	Module EndpointSAMLMutate `json:"module,omitempty"`
}

type EdgeRouteTrafficPolicyReplace added in v0.4.0

type EdgeRouteTrafficPolicyReplace struct {
	EdgeID string                `json:"edge_id,omitempty"`
	ID     string                `json:"id,omitempty"`
	Module EndpointTrafficPolicy `json:"module,omitempty"`
}

type EdgeRouteUserAgentFilterReplace added in v0.3.0

type EdgeRouteUserAgentFilterReplace struct {
	EdgeID string                  `json:"edge_id,omitempty"`
	ID     string                  `json:"id,omitempty"`
	Module EndpointUserAgentFilter `json:"module,omitempty"`
}

type EdgeRouteWebhookVerificationReplace added in v0.1.4

type EdgeRouteWebhookVerificationReplace struct {
	EdgeID string                    `json:"edge_id,omitempty"`
	ID     string                    `json:"id,omitempty"`
	Module EndpointWebhookValidation `json:"module,omitempty"`
}

type EdgeRouteWebsocketTCPConverterReplace added in v0.1.4

type EdgeRouteWebsocketTCPConverterReplace struct {
	EdgeID string                        `json:"edge_id,omitempty"`
	ID     string                        `json:"id,omitempty"`
	Module EndpointWebsocketTCPConverter `json:"module,omitempty"`
}

type EdgeTLSTerminationAtEdgeReplace added in v0.1.4

type EdgeTLSTerminationAtEdgeReplace struct {
	ID     string                       `json:"id,omitempty"`
	Module EndpointTLSTerminationAtEdge `json:"module,omitempty"`
}

type EdgeTLSTerminationReplace added in v0.1.4

type EdgeTLSTerminationReplace struct {
	ID     string                 `json:"id,omitempty"`
	Module EndpointTLSTermination `json:"module,omitempty"`
}

type EdgeTrafficPolicyReplace added in v0.4.0

type EdgeTrafficPolicyReplace struct {
	ID     string                `json:"id,omitempty"`
	Module EndpointTrafficPolicy `json:"module,omitempty"`
}

type Empty

type Empty struct {
}

type Endpoint added in v0.1.4

type Endpoint struct {
	// unique endpoint resource identifier
	ID string `json:"id,omitempty"`
	// identifier of the region this endpoint belongs to
	Region string `json:"region,omitempty"`
	// timestamp when the endpoint was created in RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// timestamp when the endpoint was updated in RFC 3339 format
	UpdatedAt string `json:"updated_at,omitempty"`
	// URL of the hostport served by this endpoint
	PublicURL string `json:"public_url,omitempty"`
	// protocol served by this endpoint. one of http, https, tcp, or tls
	Proto  string `json:"proto,omitempty"`
	Scheme string `json:"scheme,omitempty"`
	// hostport served by this endpoint (hostname:port) -> soon to be deprecated
	Hostport string `json:"hostport,omitempty"`
	Host     string `json:"host,omitempty"`
	Port     int64  `json:"port,omitempty"`
	// whether the endpoint is ephemeral (served directly by an agent-initiated tunnel)
	// or edge (served by an edge) or cloud (represents a cloud endpoint)
	Type string `json:"type,omitempty"`
	// user-supplied metadata of the associated tunnel or edge object
	Metadata string `json:"metadata,omitempty"`
	// user-supplied description of the associated tunnel
	Description string `json:"description,omitempty"`
	// the domain reserved for this endpoint
	Domain *Ref `json:"domain,omitempty"`
	// the address reserved for this endpoint
	TCPAddr *Ref `json:"tcp_addr,omitempty"`
	// the tunnel serving requests to this endpoint, if this is an ephemeral endpoint
	Tunnel *Ref `json:"tunnel,omitempty"`
	// the edge serving requests to this endpoint, if this is an edge endpoint
	Edge *Ref `json:"edge,omitempty"`
	// the local address the tunnel forwards to
	UpstreamURL string `json:"upstream_url,omitempty"`
	// the protocol the agent uses to forward with
	UpstreamProto string `json:"upstream_proto,omitempty"`
	// the url of the endpoint
	URL string `json:"url,omitempty"`
	// The ID of the owner (bot or user) that owns this endpoint
	Principal *Ref `json:"principal,omitempty"`
	// TODO: deprecate me!
	PrincipalID *Ref `json:"principal_id,omitempty"`
	// The traffic policy attached to this endpoint
	TrafficPolicy string `json:"traffic_policy,omitempty"`
	// the bindings associated with this endpoint
	Bindings *[]string `json:"bindings,omitempty"`
	// The tunnel session of the agent for this endpoint
	TunnelSession *Ref `json:"tunnel_session,omitempty"`
	// URI of the clep API resource
	URI string `json:"uri,omitempty"`
	// user supplied name for the endpoint
	Name string `json:"name,omitempty"`
}

type EndpointAction added in v0.3.0

type EndpointAction struct {
	// the type of action on the policy rule.
	Type string `json:"type,omitempty"`
	// the configuration for the action on the policy rule.
	Config any `json:"config,omitempty"`
}

type EndpointBackend

type EndpointBackend struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// backend to be used to back this endpoint
	Backend Ref `json:"backend,omitempty"`
}

type EndpointBackendMutate

type EndpointBackendMutate struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// backend to be used to back this endpoint
	BackendID string `json:"backend_id,omitempty"`
}

type EndpointBackendReplace

type EndpointBackendReplace struct {
	ID     string                `json:"id,omitempty"`
	Module EndpointBackendMutate `json:"module,omitempty"`
}

type EndpointBasicAuth

type EndpointBasicAuth struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// determines how the basic auth credentials are validated. Currently only the
	// value agent is supported which means that credentials will be validated against
	// the username and password specified by the ngrok agent's --basic-auth flag, if
	// any.
	AuthProviderID string `json:"auth_provider_id,omitempty"`
	// an arbitrary string to be specified in as the 'realm' value in the
	// WWW-Authenticate header. default is ngrok
	Realm string `json:"realm,omitempty"`
	// true or false indicating whether to allow OPTIONS requests through without
	// authentication which is necessary for CORS. default is false
	AllowOptions bool `json:"allow_options,omitempty"`
}

type EndpointBasicAuthReplace

type EndpointBasicAuthReplace struct {
	ID     string            `json:"id,omitempty"`
	Module EndpointBasicAuth `json:"module,omitempty"`
}

type EndpointCircuitBreaker

type EndpointCircuitBreaker struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// Integer number of seconds after which the circuit is tripped to wait before
	// re-evaluating upstream health
	TrippedDuration uint32 `json:"tripped_duration,omitempty"`
	// Integer number of seconds in the statistical rolling window that metrics are
	// retained for.
	RollingWindow uint32 `json:"rolling_window,omitempty"`
	// Integer number of buckets into which metrics are retained. Max 128.
	NumBuckets uint32 `json:"num_buckets,omitempty"`
	// Integer number of requests in a rolling window that will trip the circuit.
	// Helpful if traffic volume is low.
	VolumeThreshold uint32 `json:"volume_threshold,omitempty"`
	// Error threshold percentage should be between 0 - 1.0, not 0-100.0
	ErrorThresholdPercentage float64 `json:"error_threshold_percentage,omitempty"`
}

type EndpointCircuitBreakerReplace

type EndpointCircuitBreakerReplace struct {
	ID     string                 `json:"id,omitempty"`
	Module EndpointCircuitBreaker `json:"module,omitempty"`
}

type EndpointCompression

type EndpointCompression struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
}

type EndpointCompressionReplace

type EndpointCompressionReplace struct {
	ID     string              `json:"id,omitempty"`
	Module EndpointCompression `json:"module,omitempty"`
}

type EndpointConfiguration

type EndpointConfiguration struct {
	// unique identifier of this endpoint configuration
	ID string `json:"id,omitempty"`
	// they type of traffic this endpoint configuration can be applied to. one of:
	// http, https, tcp
	Type string `json:"type,omitempty"`
	// human-readable description of what this endpoint configuration will be do when
	// applied or what traffic it will be applied to. Optional, max 255 bytes
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this endpoint configuration.
	// Optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// timestamp when the endpoint configuration was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// URI of the endpoint configuration API resource
	URI string `json:"uri,omitempty"`
	// basic auth module configuration or null
	BasicAuth *EndpointBasicAuth `json:"basic_auth,omitempty"`
	// circuit breaker module configuration or null
	CircuitBreaker *EndpointCircuitBreaker `json:"circuit_breaker,omitempty"`
	// compression module configuration or null
	Compression *EndpointCompression `json:"compression,omitempty"`
	// request headers module configuration or null
	RequestHeaders *EndpointRequestHeaders `json:"request_headers,omitempty"`
	// response headers module configuration or null
	ResponseHeaders *EndpointResponseHeaders `json:"response_headers,omitempty"`
	// ip policy module configuration or null
	IPPolicy *EndpointIPPolicy `json:"ip_policy,omitempty"`
	// mutual TLS module configuration or null
	MutualTLS *EndpointMutualTLS `json:"mutual_tls,omitempty"`
	// TLS termination module configuration or null
	TLSTermination *EndpointTLSTermination `json:"tls_termination,omitempty"`
	// webhook validation module configuration or null
	WebhookValidation *EndpointWebhookValidation `json:"webhook_validation,omitempty"`
	// oauth module configuration or null
	OAuth *EndpointOAuth `json:"oauth,omitempty"`
	// saml module configuration or null
	SAML *EndpointSAML `json:"saml,omitempty"`
	// oidc module configuration or null
	OIDC *EndpointOIDC `json:"oidc,omitempty"`
	// backend module configuration or null
	Backend *EndpointBackend `json:"backend,omitempty"`
}

type EndpointConfigurationCreate

type EndpointConfigurationCreate struct {
	// they type of traffic this endpoint configuration can be applied to. one of:
	// http, https, tcp
	Type string `json:"type,omitempty"`
	// human-readable description of what this endpoint configuration will be do when
	// applied or what traffic it will be applied to. Optional, max 255 bytes
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this endpoint configuration.
	// Optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// basic auth module configuration or null
	BasicAuth *EndpointBasicAuth `json:"basic_auth,omitempty"`
	// circuit breaker module configuration or null
	CircuitBreaker *EndpointCircuitBreaker `json:"circuit_breaker,omitempty"`
	// compression module configuration or null
	Compression *EndpointCompression `json:"compression,omitempty"`
	// request headers module configuration or null
	RequestHeaders *EndpointRequestHeaders `json:"request_headers,omitempty"`
	// response headers module configuration or null
	ResponseHeaders *EndpointResponseHeaders `json:"response_headers,omitempty"`
	// ip policy module configuration or null
	IPPolicy *EndpointIPPolicyMutate `json:"ip_policy,omitempty"`
	// mutual TLS module configuration or null
	MutualTLS *EndpointMutualTLSMutate `json:"mutual_tls,omitempty"`
	// TLS termination module configuration or null
	TLSTermination *EndpointTLSTermination `json:"tls_termination,omitempty"`
	// webhook validation module configuration or null
	WebhookValidation *EndpointWebhookValidation `json:"webhook_validation,omitempty"`
	// oauth module configuration or null
	OAuth *EndpointOAuth `json:"oauth,omitempty"`
	// saml module configuration or null
	SAML *EndpointSAMLMutate `json:"saml,omitempty"`
	// oidc module configuration or null
	OIDC *EndpointOIDC `json:"oidc,omitempty"`
	// backend module configuration or null
	Backend *EndpointBackendMutate `json:"backend,omitempty"`
}

type EndpointConfigurationList

type EndpointConfigurationList struct {
	// the list of all endpoint configurations on this account
	EndpointConfigurations []EndpointConfiguration `json:"endpoint_configurations,omitempty"`
	// URI of the endpoint configurations list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type EndpointConfigurationUpdate

type EndpointConfigurationUpdate struct {
	// unique identifier of this endpoint configuration
	ID string `json:"id,omitempty"`
	// human-readable description of what this endpoint configuration will be do when
	// applied or what traffic it will be applied to. Optional, max 255 bytes
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this endpoint configuration.
	// Optional, max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
	// basic auth module configuration or null
	BasicAuth *EndpointBasicAuth `json:"basic_auth,omitempty"`
	// circuit breaker module configuration or null
	CircuitBreaker *EndpointCircuitBreaker `json:"circuit_breaker,omitempty"`
	// compression module configuration or null
	Compression *EndpointCompression `json:"compression,omitempty"`
	// request headers module configuration or null
	RequestHeaders *EndpointRequestHeaders `json:"request_headers,omitempty"`
	// response headers module configuration or null
	ResponseHeaders *EndpointResponseHeaders `json:"response_headers,omitempty"`
	// ip policy module configuration or null
	IPPolicy *EndpointIPPolicyMutate `json:"ip_policy,omitempty"`
	// mutual TLS module configuration or null
	MutualTLS *EndpointMutualTLSMutate `json:"mutual_tls,omitempty"`
	// TLS termination module configuration or null
	TLSTermination *EndpointTLSTermination `json:"tls_termination,omitempty"`
	// webhook validation module configuration or null
	WebhookValidation *EndpointWebhookValidation `json:"webhook_validation,omitempty"`
	// oauth module configuration or null
	OAuth *EndpointOAuth `json:"oauth,omitempty"`
	// saml module configuration or null
	SAML *EndpointSAMLMutate `json:"saml,omitempty"`
	// oidc module configuration or null
	OIDC *EndpointOIDC `json:"oidc,omitempty"`
	// backend module configuration or null
	Backend *EndpointBackendMutate `json:"backend,omitempty"`
}

type EndpointCreate added in v0.4.0

type EndpointCreate struct {
	// the url of the endpoint
	URL string `json:"url,omitempty"`
	// whether the endpoint is ephemeral (served directly by an agent-initiated tunnel)
	// or edge (served by an edge) or cloud (represents a cloud endpoint)
	Type string `json:"type,omitempty"`
	// The traffic policy attached to this endpoint
	TrafficPolicy string `json:"traffic_policy,omitempty"`
	// user-supplied description of the associated tunnel
	Description *string `json:"description,omitempty"`
	// user-supplied metadata of the associated tunnel or edge object
	Metadata *string `json:"metadata,omitempty"`
	// the bindings associated with this endpoint
	Bindings *[]string `json:"bindings,omitempty"`
}

type EndpointIPPolicy

type EndpointIPPolicy struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// list of all IP policies that will be used to check if a source IP is allowed
	// access to the endpoint
	IPPolicies []Ref `json:"ip_policies,omitempty"`
}

type EndpointIPPolicyMutate

type EndpointIPPolicyMutate struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// list of all IP policies that will be used to check if a source IP is allowed
	// access to the endpoint
	IPPolicyIDs []string `json:"ip_policy_ids,omitempty"`
}

type EndpointIPPolicyReplace

type EndpointIPPolicyReplace struct {
	ID     string                 `json:"id,omitempty"`
	Module EndpointIPPolicyMutate `json:"module,omitempty"`
}

type EndpointList added in v0.1.4

type EndpointList struct {
	// the list of all active endpoints on this account
	Endpoints []Endpoint `json:"endpoints,omitempty"`
	// URI of the endpoints list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type EndpointMutualTLS

type EndpointMutualTLS struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// PEM-encoded CA certificates that will be used to validate. Multiple CAs may be
	// provided by concatenating them together.
	CertificateAuthorities []Ref `json:"certificate_authorities,omitempty"`
}

type EndpointMutualTLSMutate

type EndpointMutualTLSMutate struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// list of certificate authorities that will be used to validate the TLS client
	// certificate presented by the initiator of the TLS connection
	CertificateAuthorityIDs []string `json:"certificate_authority_ids,omitempty"`
}

type EndpointMutualTLSReplace

type EndpointMutualTLSReplace struct {
	ID     string                  `json:"id,omitempty"`
	Module EndpointMutualTLSMutate `json:"module,omitempty"`
}

type EndpointOAuth

type EndpointOAuth struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// an object which defines the identity provider to use for authentication and
	// configuration for who may access the endpoint
	Provider EndpointOAuthProvider `json:"provider,omitempty"`
	// Do not enforce authentication on HTTP OPTIONS requests. necessary if you are
	// supporting CORS.
	OptionsPassthrough bool `json:"options_passthrough,omitempty"`
	// the prefix of the session cookie that ngrok sets on the http client to cache
	// authentication. default is 'ngrok.'
	CookiePrefix string `json:"cookie_prefix,omitempty"`
	// Integer number of seconds of inactivity after which if the user has not accessed
	// the endpoint, their session will time out and they will be forced to
	// reauthenticate.
	InactivityTimeout uint32 `json:"inactivity_timeout,omitempty"`
	// Integer number of seconds of the maximum duration of an authenticated session.
	// After this period is exceeded, a user must reauthenticate.
	MaximumDuration uint32 `json:"maximum_duration,omitempty"`
	// Integer number of seconds after which ngrok guarantees it will refresh user
	// state from the identity provider and recheck whether the user is still
	// authorized to access the endpoint. This is the preferred tunable to use to
	// enforce a minimum amount of time after which a revoked user will no longer be
	// able to access the resource.
	AuthCheckInterval uint32 `json:"auth_check_interval,omitempty"`
}

type EndpointOAuthAmazon added in v0.1.5

type EndpointOAuthAmazon struct {
	ClientID       *string  `json:"client_id,omitempty"`
	ClientSecret   *string  `json:"client_secret,omitempty"`
	Scopes         []string `json:"scopes,omitempty"`
	EmailAddresses []string `json:"email_addresses,omitempty"`
	EmailDomains   []string `json:"email_domains,omitempty"`
}

type EndpointOAuthFacebook

type EndpointOAuthFacebook struct {
	// the OAuth app client ID. retrieve it from the identity provider's dashboard
	// where you created your own OAuth app. optional. if unspecified, ngrok will use
	// its own managed oauth application which has additional restrictions. see the
	// OAuth module docs for more details. if present, client_secret must be present as
	// well.
	ClientID *string `json:"client_id,omitempty"`
	// the OAuth app client secret. retrieve if from the identity provider's dashboard
	// where you created your own OAuth app. optional, see all of the caveats in the
	// docs for client_id.
	ClientSecret *string `json:"client_secret,omitempty"`
	// a list of provider-specific OAuth scopes with the permissions your OAuth app
	// would like to ask for. these may not be set if you are using the ngrok-managed
	// oauth app (i.e. you must pass both client_id and client_secret to set scopes)
	Scopes []string `json:"scopes,omitempty"`
	// a list of email addresses of users authenticated by identity provider who are
	// allowed access to the endpoint
	EmailAddresses []string `json:"email_addresses,omitempty"`
	// a list of email domains of users authenticated by identity provider who are
	// allowed access to the endpoint
	EmailDomains []string `json:"email_domains,omitempty"`
}

type EndpointOAuthGitHub

type EndpointOAuthGitHub struct {
	// the OAuth app client ID. retrieve it from the identity provider's dashboard
	// where you created your own OAuth app. optional. if unspecified, ngrok will use
	// its own managed oauth application which has additional restrictions. see the
	// OAuth module docs for more details. if present, client_secret must be present as
	// well.
	ClientID *string `json:"client_id,omitempty"`
	// the OAuth app client secret. retrieve if from the identity provider's dashboard
	// where you created your own OAuth app. optional, see all of the caveats in the
	// docs for client_id.
	ClientSecret *string `json:"client_secret,omitempty"`
	// a list of provider-specific OAuth scopes with the permissions your OAuth app
	// would like to ask for. these may not be set if you are using the ngrok-managed
	// oauth app (i.e. you must pass both client_id and client_secret to set scopes)
	Scopes *[]string `json:"scopes,omitempty"`
	// a list of email addresses of users authenticated by identity provider who are
	// allowed access to the endpoint
	EmailAddresses *[]string `json:"email_addresses,omitempty"`
	// a list of email domains of users authenticated by identity provider who are
	// allowed access to the endpoint
	EmailDomains *[]string `json:"email_domains,omitempty"`
	// a list of github teams identifiers. users will be allowed access to the endpoint
	// if they are a member of any of these teams. identifiers should be in the 'slug'
	// format qualified with the org name, e.g. org-name/team-name
	Teams *[]string `json:"teams,omitempty"`
	// a list of github org identifiers. users who are members of any of the listed
	// organizations will be allowed access. identifiers should be the organization's
	// 'slug'
	Organizations *[]string `json:"organizations,omitempty"`
}

type EndpointOAuthGitLab added in v0.1.5

type EndpointOAuthGitLab struct {
	ClientID       *string  `json:"client_id,omitempty"`
	ClientSecret   *string  `json:"client_secret,omitempty"`
	Scopes         []string `json:"scopes,omitempty"`
	EmailAddresses []string `json:"email_addresses,omitempty"`
	EmailDomains   []string `json:"email_domains,omitempty"`
}

type EndpointOAuthGoogle

type EndpointOAuthGoogle struct {
	// the OAuth app client ID. retrieve it from the identity provider's dashboard
	// where you created your own OAuth app. optional. if unspecified, ngrok will use
	// its own managed oauth application which has additional restrictions. see the
	// OAuth module docs for more details. if present, client_secret must be present as
	// well.
	ClientID *string `json:"client_id,omitempty"`
	// the OAuth app client secret. retrieve if from the identity provider's dashboard
	// where you created your own OAuth app. optional, see all of the caveats in the
	// docs for client_id.
	ClientSecret *string `json:"client_secret,omitempty"`
	// a list of provider-specific OAuth scopes with the permissions your OAuth app
	// would like to ask for. these may not be set if you are using the ngrok-managed
	// oauth app (i.e. you must pass both client_id and client_secret to set scopes)
	Scopes []string `json:"scopes,omitempty"`
	// a list of email addresses of users authenticated by identity provider who are
	// allowed access to the endpoint
	EmailAddresses []string `json:"email_addresses,omitempty"`
	// a list of email domains of users authenticated by identity provider who are
	// allowed access to the endpoint
	EmailDomains []string `json:"email_domains,omitempty"`
}

type EndpointOAuthLinkedIn added in v0.1.5

type EndpointOAuthLinkedIn struct {
	ClientID       *string  `json:"client_id,omitempty"`
	ClientSecret   *string  `json:"client_secret,omitempty"`
	Scopes         []string `json:"scopes,omitempty"`
	EmailAddresses []string `json:"email_addresses,omitempty"`
	EmailDomains   []string `json:"email_domains,omitempty"`
}

type EndpointOAuthMicrosoft

type EndpointOAuthMicrosoft struct {
	// the OAuth app client ID. retrieve it from the identity provider's dashboard
	// where you created your own OAuth app. optional. if unspecified, ngrok will use
	// its own managed oauth application which has additional restrictions. see the
	// OAuth module docs for more details. if present, client_secret must be present as
	// well.
	ClientID *string `json:"client_id,omitempty"`
	// the OAuth app client secret. retrieve if from the identity provider's dashboard
	// where you created your own OAuth app. optional, see all of the caveats in the
	// docs for client_id.
	ClientSecret *string `json:"client_secret,omitempty"`
	// a list of provider-specific OAuth scopes with the permissions your OAuth app
	// would like to ask for. these may not be set if you are using the ngrok-managed
	// oauth app (i.e. you must pass both client_id and client_secret to set scopes)
	Scopes []string `json:"scopes,omitempty"`
	// a list of email addresses of users authenticated by identity provider who are
	// allowed access to the endpoint
	EmailAddresses []string `json:"email_addresses,omitempty"`
	// a list of email domains of users authenticated by identity provider who are
	// allowed access to the endpoint
	EmailDomains []string `json:"email_domains,omitempty"`
}

type EndpointOAuthProvider

type EndpointOAuthProvider struct {
	// configuration for using github as the identity provider
	Github *EndpointOAuthGitHub `json:"github,omitempty"`
	// configuration for using facebook as the identity provider
	Facebook *EndpointOAuthFacebook `json:"facebook,omitempty"`
	// configuration for using microsoft as the identity provider
	Microsoft *EndpointOAuthMicrosoft `json:"microsoft,omitempty"`
	// configuration for using google as the identity provider
	Google *EndpointOAuthGoogle `json:"google,omitempty"`
	// configuration for using linkedin as the identity provider
	Linkedin *EndpointOAuthLinkedIn `json:"linkedin,omitempty"`
	// configuration for using gitlab as the identity provider
	Gitlab *EndpointOAuthGitLab `json:"gitlab,omitempty"`
	// configuration for using twitch as the identity provider
	Twitch *EndpointOAuthTwitch `json:"twitch,omitempty"`
	// configuration for using amazon as the identity provider
	Amazon *EndpointOAuthAmazon `json:"amazon,omitempty"`
}

type EndpointOAuthReplace

type EndpointOAuthReplace struct {
	ID     string        `json:"id,omitempty"`
	Module EndpointOAuth `json:"module,omitempty"`
}

type EndpointOAuthTwitch added in v0.1.5

type EndpointOAuthTwitch struct {
	ClientID       *string  `json:"client_id,omitempty"`
	ClientSecret   *string  `json:"client_secret,omitempty"`
	Scopes         []string `json:"scopes,omitempty"`
	EmailAddresses []string `json:"email_addresses,omitempty"`
	EmailDomains   []string `json:"email_domains,omitempty"`
}

type EndpointOIDC

type EndpointOIDC struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// Do not enforce authentication on HTTP OPTIONS requests. necessary if you are
	// supporting CORS.
	OptionsPassthrough bool `json:"options_passthrough,omitempty"`
	// the prefix of the session cookie that ngrok sets on the http client to cache
	// authentication. default is 'ngrok.'
	CookiePrefix string `json:"cookie_prefix,omitempty"`
	// Integer number of seconds of inactivity after which if the user has not accessed
	// the endpoint, their session will time out and they will be forced to
	// reauthenticate.
	InactivityTimeout uint32 `json:"inactivity_timeout,omitempty"`
	// Integer number of seconds of the maximum duration of an authenticated session.
	// After this period is exceeded, a user must reauthenticate.
	MaximumDuration uint32 `json:"maximum_duration,omitempty"`
	// URL of the OIDC "OpenID provider". This is the base URL used for discovery.
	Issuer string `json:"issuer,omitempty"`
	// The OIDC app's client ID and OIDC audience.
	ClientID string `json:"client_id,omitempty"`
	// The OIDC app's client secret.
	ClientSecret string `json:"client_secret,omitempty"`
	// The set of scopes to request from the OIDC identity provider.
	Scopes []string `json:"scopes,omitempty"`
}

type EndpointOIDCReplace

type EndpointOIDCReplace struct {
	ID     string       `json:"id,omitempty"`
	Module EndpointOIDC `json:"module,omitempty"`
}

type EndpointPolicy added in v0.3.0

type EndpointPolicy struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// the inbound rules of the traffic policy.
	Inbound []EndpointRule `json:"inbound,omitempty"`
	// the outbound rules on the traffic policy.
	Outbound []EndpointRule `json:"outbound,omitempty"`
}

type EndpointRequestHeaders

type EndpointRequestHeaders struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// a map of header key to header value that will be injected into the HTTP Request
	// before being sent to the upstream application server
	Add map[string]string `json:"add,omitempty"`
	// a list of header names that will be removed from the HTTP Request before being
	// sent to the upstream application server
	Remove []string `json:"remove,omitempty"`
}

type EndpointRequestHeadersReplace

type EndpointRequestHeadersReplace struct {
	ID     string                 `json:"id,omitempty"`
	Module EndpointRequestHeaders `json:"module,omitempty"`
}

type EndpointResponseHeaders

type EndpointResponseHeaders struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// a map of header key to header value that will be injected into the HTTP Response
	// returned to the HTTP client
	Add map[string]string `json:"add,omitempty"`
	// a list of header names that will be removed from the HTTP Response returned to
	// the HTTP client
	Remove []string `json:"remove,omitempty"`
}

type EndpointResponseHeadersReplace

type EndpointResponseHeadersReplace struct {
	ID     string                  `json:"id,omitempty"`
	Module EndpointResponseHeaders `json:"module,omitempty"`
}

type EndpointRule added in v0.3.0

type EndpointRule struct {
	// cel expressions that filter traffic the policy rule applies to.
	Expressions []string `json:"expressions,omitempty"`
	// the set of actions on a policy rule.
	Actions []EndpointAction `json:"actions,omitempty"`
	// the name of the rule that is part of the traffic policy.
	Name string `json:"name,omitempty"`
}

type EndpointSAML

type EndpointSAML struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// Do not enforce authentication on HTTP OPTIONS requests. necessary if you are
	// supporting CORS.
	OptionsPassthrough bool `json:"options_passthrough,omitempty"`
	// the prefix of the session cookie that ngrok sets on the http client to cache
	// authentication. default is 'ngrok.'
	CookiePrefix string `json:"cookie_prefix,omitempty"`
	// Integer number of seconds of inactivity after which if the user has not accessed
	// the endpoint, their session will time out and they will be forced to
	// reauthenticate.
	InactivityTimeout uint32 `json:"inactivity_timeout,omitempty"`
	// Integer number of seconds of the maximum duration of an authenticated session.
	// After this period is exceeded, a user must reauthenticate.
	MaximumDuration uint32 `json:"maximum_duration,omitempty"`
	// The IdP's metadata URL which returns the XML IdP EntityDescriptor. The IdP's
	// metadata URL specifies how to connect to the IdP as well as its public key which
	// is then used to validate the signature on incoming SAML assertions to the ACS
	// endpoint.
	IdPMetadataURL string `json:"idp_metadata_url,omitempty"`
	// The full XML IdP EntityDescriptor. Your IdP may provide this to you as a a file
	// to download or as a URL.
	IdPMetadata string `json:"idp_metadata,omitempty"`
	// If true, indicates that whenever we redirect a user to the IdP for
	// authentication that the IdP must prompt the user for authentication credentials
	// even if the user already has a valid session with the IdP.
	ForceAuthn bool `json:"force_authn,omitempty"`
	// If true, the IdP may initiate a login directly (e.g. the user does not need to
	// visit the endpoint first and then be redirected). The IdP should set the
	// RelayState parameter to the target URL of the resource they want the user to be
	// redirected to after the SAML login assertion has been processed.
	AllowIdPInitiated *bool `json:"allow_idp_initiated,omitempty"`
	// If present, only users who are a member of one of the listed groups may access
	// the target endpoint.
	AuthorizedGroups []string `json:"authorized_groups,omitempty"`
	// The SP Entity's unique ID. This always takes the form of a URL. In ngrok's
	// implementation, this URL is the same as the metadata URL. This will need to be
	// specified to the IdP as configuration.
	EntityID string `json:"entity_id,omitempty"`
	// The public URL of the SP's Assertion Consumer Service. This is where the IdP
	// will redirect to during an authentication flow. This will need to be specified
	// to the IdP as configuration.
	AssertionConsumerServiceURL string `json:"assertion_consumer_service_url,omitempty"`
	// The public URL of the SP's Single Logout Service. This is where the IdP will
	// redirect to during a single logout flow. This will optionally need to be
	// specified to the IdP as configuration.
	SingleLogoutURL string `json:"single_logout_url,omitempty"`
	// PEM-encoded x.509 certificate of the key pair that is used to sign all SAML
	// requests that the ngrok SP makes to the IdP. Many IdPs do not support request
	// signing verification, but we highly recommend specifying this in the IdP's
	// configuration if it is supported.
	RequestSigningCertificatePEM string `json:"request_signing_certificate_pem,omitempty"`
	// A public URL where the SP's metadata is hosted. If an IdP supports dynamic
	// configuration, this is the URL it can use to retrieve the SP metadata.
	MetadataURL string `json:"metadata_url,omitempty"`
	// Defines the name identifier format the SP expects the IdP to use in its
	// assertions to identify subjects. If unspecified, a default value of
	// urn:oasis:names:tc:SAML:2.0:nameid-format:persistent will be used. A subset of
	// the allowed values enumerated by the SAML specification are supported.
	NameIDFormat string `json:"nameid_format,omitempty"`
}

type EndpointSAMLMutate

type EndpointSAMLMutate struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// Do not enforce authentication on HTTP OPTIONS requests. necessary if you are
	// supporting CORS.
	OptionsPassthrough bool `json:"options_passthrough,omitempty"`
	// the prefix of the session cookie that ngrok sets on the http client to cache
	// authentication. default is 'ngrok.'
	CookiePrefix string `json:"cookie_prefix,omitempty"`
	// Integer number of seconds of inactivity after which if the user has not accessed
	// the endpoint, their session will time out and they will be forced to
	// reauthenticate.
	InactivityTimeout uint32 `json:"inactivity_timeout,omitempty"`
	// Integer number of seconds of the maximum duration of an authenticated session.
	// After this period is exceeded, a user must reauthenticate.
	MaximumDuration uint32 `json:"maximum_duration,omitempty"`
	// The IdP's metadata URL which returns the XML IdP EntityDescriptor. The IdP's
	// metadata URL specifies how to connect to the IdP as well as its public key which
	// is then used to validate the signature on incoming SAML assertions to the ACS
	// endpoint.
	IdPMetadataURL string `json:"idp_metadata_url,omitempty"`
	// The full XML IdP EntityDescriptor. Your IdP may provide this to you as a a file
	// to download or as a URL.
	IdPMetadata string `json:"idp_metadata,omitempty"`
	// If true, indicates that whenever we redirect a user to the IdP for
	// authentication that the IdP must prompt the user for authentication credentials
	// even if the user already has a valid session with the IdP.
	ForceAuthn bool `json:"force_authn,omitempty"`
	// If true, the IdP may initiate a login directly (e.g. the user does not need to
	// visit the endpoint first and then be redirected). The IdP should set the
	// RelayState parameter to the target URL of the resource they want the user to be
	// redirected to after the SAML login assertion has been processed.
	AllowIdPInitiated *bool `json:"allow_idp_initiated,omitempty"`
	// If present, only users who are a member of one of the listed groups may access
	// the target endpoint.
	AuthorizedGroups []string `json:"authorized_groups,omitempty"`
	// Defines the name identifier format the SP expects the IdP to use in its
	// assertions to identify subjects. If unspecified, a default value of
	// urn:oasis:names:tc:SAML:2.0:nameid-format:persistent will be used. A subset of
	// the allowed values enumerated by the SAML specification are supported.
	NameIDFormat string `json:"nameid_format,omitempty"`
}

type EndpointSAMLReplace

type EndpointSAMLReplace struct {
	ID     string             `json:"id,omitempty"`
	Module EndpointSAMLMutate `json:"module,omitempty"`
}

type EndpointTLSTermination

type EndpointTLSTermination struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// edge if the ngrok edge should terminate TLS traffic, upstream if TLS traffic
	// should be passed through to the upstream ngrok agent / application server for
	// termination. if upstream is chosen, most other modules will be disallowed
	// because they rely on the ngrok edge being able to access the underlying traffic.
	TerminateAt string `json:"terminate_at,omitempty"`
	// The minimum TLS version used for termination and advertised to the client during
	// the TLS handshake. if unspecified, ngrok will choose an industry-safe default.
	// This value must be null if terminate_at is set to upstream.
	MinVersion *string `json:"min_version,omitempty"`
}

type EndpointTLSTerminationAtEdge added in v0.1.4

type EndpointTLSTerminationAtEdge struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// The minimum TLS version used for termination and advertised to the client during
	// the TLS handshake. if unspecified, ngrok will choose an industry-safe default.
	// This value must be null if terminate_at is set to upstream.
	MinVersion *string `json:"min_version,omitempty"`
}

type EndpointTLSTerminationReplace

type EndpointTLSTerminationReplace struct {
	ID     string                 `json:"id,omitempty"`
	Module EndpointTLSTermination `json:"module,omitempty"`
}

type EndpointTrafficPolicy added in v0.4.0

type EndpointTrafficPolicy struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// the traffic policy that should be applied to the traffic on your endpoint.
	Value string `json:"value,omitempty"`
}

type EndpointUpdate added in v0.4.0

type EndpointUpdate struct {
	// unique endpoint resource identifier
	ID string `json:"id,omitempty"`
	// the url of the endpoint
	Url *string `json:"url,omitempty"`
	// The traffic policy attached to this endpoint
	TrafficPolicy *string `json:"traffic_policy,omitempty"`
	// user-supplied description of the associated tunnel
	Description *string `json:"description,omitempty"`
	// user-supplied metadata of the associated tunnel or edge object
	Metadata *string `json:"metadata,omitempty"`
	// the bindings associated with this endpoint
	Bindings *[]string `json:"bindings,omitempty"`
}

type EndpointUserAgentFilter added in v0.3.0

type EndpointUserAgentFilter struct {
	Enabled              *bool    `json:"enabled,omitempty"`
	UserAgentFilterAllow []string `json:"allow,omitempty"`
	UserAgentFilterDeny  []string `json:"deny,omitempty"`
}

type EndpointWebhookValidation

type EndpointWebhookValidation struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
	// a string indicating which webhook provider will be sending webhooks to this
	// endpoint. Value must be one of the supported providers defined at
	// https://ngrok.com/docs/cloud-edge/modules/webhook-verification
	// (https://ngrok.com/docs/cloud-edge/modules/webhook-verification)
	Provider string `json:"provider,omitempty"`
	// a string secret used to validate requests from the given provider. All providers
	// except AWS SNS require a secret
	Secret string `json:"secret,omitempty"`
}

type EndpointWebhookValidationReplace

type EndpointWebhookValidationReplace struct {
	ID     string                    `json:"id,omitempty"`
	Module EndpointWebhookValidation `json:"module,omitempty"`
}

type EndpointWebsocketTCPConverter added in v0.1.4

type EndpointWebsocketTCPConverter struct {
	// true if the module will be applied to traffic, false to disable. default true if
	// unspecified
	Enabled *bool `json:"enabled,omitempty"`
}

type Error

type Error struct {
	ErrorCode  string            `json:"error_code,omitempty"`
	StatusCode int32             `json:"status_code,omitempty"`
	Msg        string            `json:"msg,omitempty"`
	Details    map[string]string `json:"details,omitempty"`
}

func (*Error) Error

func (e *Error) Error() string

type EventDestination

type EventDestination struct {
	// Unique identifier for this Event Destination.
	ID string `json:"id,omitempty"`
	// Arbitrary user-defined machine-readable data of this Event Destination.
	// Optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// Timestamp when the Event Destination was created, RFC 3339 format.
	CreatedAt string `json:"created_at,omitempty"`
	// Human-readable description of the Event Destination. Optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// The output format you would like to serialize events into when sending to their
	// target. Currently the only accepted value is JSON.
	Format string `json:"format,omitempty"`
	// An object that encapsulates where and how to send your events. An event
	// destination must contain exactly one of the following objects, leaving the rest
	// null: kinesis, firehose, cloudwatch_logs, or s3.
	Target EventTarget `json:"target,omitempty"`
	// URI of the Event Destination API resource.
	URI string `json:"uri,omitempty"`
}

type EventDestinationCreate

type EventDestinationCreate struct {
	// Arbitrary user-defined machine-readable data of this Event Destination.
	// Optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// Human-readable description of the Event Destination. Optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// The output format you would like to serialize events into when sending to their
	// target. Currently the only accepted value is JSON.
	Format string `json:"format,omitempty"`
	// An object that encapsulates where and how to send your events. An event
	// destination must contain exactly one of the following objects, leaving the rest
	// null: kinesis, firehose, cloudwatch_logs, or s3.
	Target              EventTarget `json:"target,omitempty"`
	VerifyWithTestEvent *bool       `json:"verify_with_test_event,omitempty"`
}

type EventDestinationList

type EventDestinationList struct {
	// The list of all Event Destinations on this account.
	EventDestinations []EventDestination `json:"event_destinations,omitempty"`
	// URI of the Event Destinations list API resource.
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page.
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type EventDestinationUpdate

type EventDestinationUpdate struct {
	// Unique identifier for this Event Destination.
	ID string `json:"id,omitempty"`
	// Arbitrary user-defined machine-readable data of this Event Destination.
	// Optional, max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
	// Human-readable description of the Event Destination. Optional, max 255 bytes.
	Description *string `json:"description,omitempty"`
	// The output format you would like to serialize events into when sending to their
	// target. Currently the only accepted value is JSON.
	Format *string `json:"format,omitempty"`
	// An object that encapsulates where and how to send your events. An event
	// destination must contain exactly one of the following objects, leaving the rest
	// null: kinesis, firehose, cloudwatch_logs, or s3.
	Target              *EventTarget `json:"target,omitempty"`
	VerifyWithTestEvent *bool        `json:"verify_with_test_event,omitempty"`
}

type EventSource

type EventSource struct {
	// Type of event for which an event subscription will trigger
	Type string `json:"type,omitempty"`
	// TODO
	Filter string `json:"filter,omitempty"`
	// TODO
	Fields []string `json:"fields,omitempty"`
	// URI of the Event Source API resource.
	URI string `json:"uri,omitempty"`
}

type EventSourceCreate

type EventSourceCreate struct {
	// The unique identifier for the Event Subscription that this Event Source is
	// attached to.
	SubscriptionID string `json:"subscription_id,omitempty"`
	// Type of event for which an event subscription will trigger
	Type string `json:"type,omitempty"`
	// TODO
	Filter string `json:"filter,omitempty"`
	// TODO
	Fields []string `json:"fields,omitempty"`
}

type EventSourceItem

type EventSourceItem struct {
	// The unique identifier for the Event Subscription that this Event Source is
	// attached to.
	SubscriptionID string `json:"subscription_id,omitempty"`
	// Type of event for which an event subscription will trigger
	Type string `json:"type,omitempty"`
}

This is needed instead of Item because the parameters are different.

type EventSourceList

type EventSourceList struct {
	// The list of all Event Sources for an Event Subscription
	Sources []EventSource `json:"sources,omitempty"`
	// URI of the next page, or null if there is no next page.
	URI string `json:"uri,omitempty"`
}

type EventSourcePaging

type EventSourcePaging struct {
	// The unique identifier for the Event Subscription that this Event Source is
	// attached to.
	SubscriptionID string `json:"subscription_id,omitempty"`
}

This is needed instead of Paging because the parameters are different. We also don't need the typical pagination params because pagination of this isn't necessary or supported.

type EventSourceReplace

type EventSourceReplace struct {
	// Type of event for which an event subscription will trigger
	Type string `json:"type,omitempty"`
	// TODO
	Filter string `json:"filter,omitempty"`
	// TODO
	Fields []string `json:"fields,omitempty"`
}

type EventSourceUpdate

type EventSourceUpdate struct {
	// The unique identifier for the Event Subscription that this Event Source is
	// attached to.
	SubscriptionID string `json:"subscription_id,omitempty"`
	// Type of event for which an event subscription will trigger
	Type string `json:"type,omitempty"`
	// TODO
	Filter *string `json:"filter,omitempty"`
	// TODO
	Fields *[]string `json:"fields,omitempty"`
}

type EventSubscription

type EventSubscription struct {
	// Unique identifier for this Event Subscription.
	ID string `json:"id,omitempty"`
	// URI of the Event Subscription API resource.
	URI string `json:"uri,omitempty"`
	// When the Event Subscription was created (RFC 3339 format).
	CreatedAt string `json:"created_at,omitempty"`
	// Arbitrary customer supplied information intended to be machine readable.
	// Optional, max 4096 chars.
	Metadata string `json:"metadata,omitempty"`
	// Arbitrary customer supplied information intended to be human readable. Optional,
	// max 255 chars.
	Description string `json:"description,omitempty"`
	// Sources containing the types for which this event subscription will trigger
	Sources []EventSource `json:"sources,omitempty"`
	// Destinations to which these events will be sent
	Destinations []Ref `json:"destinations,omitempty"`
}

type EventSubscriptionCreate

type EventSubscriptionCreate struct {
	// Arbitrary customer supplied information intended to be machine readable.
	// Optional, max 4096 chars.
	Metadata string `json:"metadata,omitempty"`
	// Arbitrary customer supplied information intended to be human readable. Optional,
	// max 255 chars.
	Description string `json:"description,omitempty"`
	// Sources containing the types for which this event subscription will trigger
	Sources []EventSourceReplace `json:"sources,omitempty"`
	// A list of Event Destination IDs which should be used for this Event
	// Subscription.
	DestinationIDs []string `json:"destination_ids,omitempty"`
}

type EventSubscriptionList

type EventSubscriptionList struct {
	// The list of all Event Subscriptions on this account.
	EventSubscriptions []EventSubscription `json:"event_subscriptions,omitempty"`
	// URI of the Event Subscriptions list API resource.
	URI string `json:"uri,omitempty"`
	// URI of next page, or null if there is no next page.
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type EventSubscriptionUpdate

type EventSubscriptionUpdate struct {
	// Unique identifier for this Event Subscription.
	ID string `json:"id,omitempty"`
	// Arbitrary customer supplied information intended to be machine readable.
	// Optional, max 4096 chars.
	Metadata *string `json:"metadata,omitempty"`
	// Arbitrary customer supplied information intended to be human readable. Optional,
	// max 255 chars.
	Description *string `json:"description,omitempty"`
	// Sources containing the types for which this event subscription will trigger
	Sources *[]EventSourceReplace `json:"sources,omitempty"`
	// A list of Event Destination IDs which should be used for this Event
	// Subscription.
	DestinationIDs *[]string `json:"destination_ids,omitempty"`
}

type EventTarget

type EventTarget struct {
	// Configuration used to send events to Amazon Kinesis Data Firehose.
	Firehose *EventTargetFirehose `json:"firehose,omitempty"`
	// Configuration used to send events to Amazon Kinesis.
	Kinesis *EventTargetKinesis `json:"kinesis,omitempty"`
	// Configuration used to send events to Amazon CloudWatch Logs.
	CloudwatchLogs *EventTargetCloudwatchLogs `json:"cloudwatch_logs,omitempty"`
	// Configuration used for internal debugging.
	Debug *EventTargetDebug `json:"debug,omitempty"`
	// Configuration used to send events to Datadog.
	Datadog            *EventTargetDatadog            `json:"datadog,omitempty"`
	AzureLogsIngestion *EventTargetAzureLogsIngestion `json:"azure_logs_ingestion,omitempty"`
}

type EventTargetAzureLogsIngestion added in v0.4.0

type EventTargetAzureLogsIngestion struct {
	// Tenant ID for the Azure account
	TenantId string `json:"tenant_id,omitempty"`
	// Client ID for the application client
	ClientId string `json:"client_id,omitempty"`
	// Client Secret for the application client
	ClientSecret string `json:"client_secret,omitempty"`
	// Data collection endpoint logs ingestion URI
	LogsIngestionURI string `json:"logs_ingestion_uri,omitempty"`
	// Data collection rule immutable ID
	DataCollectionRuleId string `json:"data_collection_rule_id,omitempty"`
	// Data collection stream name to use as destination, located inside the DCR
	DataCollectionStreamName string `json:"data_collection_stream_name,omitempty"`
}

type EventTargetCloudwatchLogs

type EventTargetCloudwatchLogs struct {
	// Configuration for how to authenticate into your AWS account. Exactly one of role
	// or creds should be configured.
	Auth AWSAuth `json:"auth,omitempty"`
	// An Amazon Resource Name specifying the CloudWatch Logs group to deposit events
	// into.
	LogGroupARN string `json:"log_group_arn,omitempty"`
}

type EventTargetDatadog added in v0.1.5

type EventTargetDatadog struct {
	// Datadog API key to use.
	ApiKey *string `json:"api_key,omitempty"`
	// Tags to send with the event.
	Ddtags *string `json:"ddtags,omitempty"`
	// Service name to send with the event.
	Service *string `json:"service,omitempty"`
	// Datadog site to send event to.
	Ddsite *string `json:"ddsite,omitempty"`
}

type EventTargetDebug

type EventTargetDebug struct {
	// Whether or not to output to publisher service logs.
	Log bool `json:"log,omitempty"`
	// URL to send events to.
	CallbackURL string `json:"callback_url,omitempty"`
}

type EventTargetFirehose

type EventTargetFirehose struct {
	// Configuration for how to authenticate into your AWS account. Exactly one of role
	// or creds should be configured.
	Auth AWSAuth `json:"auth,omitempty"`
	// An Amazon Resource Name specifying the Firehose delivery stream to deposit
	// events into.
	DeliveryStreamARN string `json:"delivery_stream_arn,omitempty"`
}

type EventTargetKinesis

type EventTargetKinesis struct {
	// Configuration for how to authenticate into your AWS account. Exactly one of role
	// or creds should be configured.
	Auth AWSAuth `json:"auth,omitempty"`
	// An Amazon Resource Name specifying the Kinesis stream to deposit events into.
	StreamARN string `json:"stream_arn,omitempty"`
}

type EventTargetS3

type EventTargetS3 struct {
	// Configuration for how to authenticate into your AWS account. Exactly one of role
	// or creds should be configured.
	Auth AWSAuth `json:"auth,omitempty"`
	// An Amazon Resource Name specifying the S3 bucket to deposit events into.
	BucketARN string `json:"bucket_arn,omitempty"`
	// An optional prefix to prepend to S3 object keys.
	ObjectPrefix string `json:"object_prefix,omitempty"`
	// Whether or not to compress files with gzip.
	Compression bool `json:"compression,omitempty"`
	// How many bytes we should accumulate into a single file before sending to S3.
	MaxFileSize int64 `json:"max_file_size,omitempty"`
	// How many seconds we should batch up events before sending them to S3.
	MaxFileAge int64 `json:"max_file_age,omitempty"`
}

type FailoverBackend added in v0.1.4

type FailoverBackend struct {
	// unique identifier for this Failover backend
	ID string `json:"id,omitempty"`
	// URI of the FailoverBackend API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the backend was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this backend. Optional
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata string `json:"metadata,omitempty"`
	// the ids of the child backends in order
	Backends []string `json:"backends,omitempty"`
}

type FailoverBackendCreate added in v0.1.4

type FailoverBackendCreate struct {
	// human-readable description of this backend. Optional
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata string `json:"metadata,omitempty"`
	// the ids of the child backends in order
	Backends []string `json:"backends,omitempty"`
}

type FailoverBackendList added in v0.1.4

type FailoverBackendList struct {
	// the list of all Failover backends on this account
	Backends []FailoverBackend `json:"backends,omitempty"`
	// URI of the Failover backends list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type FailoverBackendUpdate added in v0.1.4

type FailoverBackendUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this backend. Optional
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata *string `json:"metadata,omitempty"`
	// the ids of the child backends in order
	Backends []string `json:"backends,omitempty"`
}

type Flagger

type Flagger interface {
	PersistentFlags() *flag.FlagSet
}

type HTTPResponseBackend added in v0.1.4

type HTTPResponseBackend struct {
	ID string `json:"id,omitempty"`
	// URI of the HTTPResponseBackend API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the backend was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this backend. Optional
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata string `json:"metadata,omitempty"`
	// body to return as fixed content
	Body string `json:"body,omitempty"`
	// headers to return
	Headers map[string]string `json:"headers,omitempty"`
	// status code to return
	StatusCode int32 `json:"status_code,omitempty"`
}

type HTTPResponseBackendCreate added in v0.1.4

type HTTPResponseBackendCreate struct {
	// human-readable description of this backend. Optional
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata string `json:"metadata,omitempty"`
	// body to return as fixed content
	Body string `json:"body,omitempty"`
	// headers to return
	Headers map[string]string `json:"headers,omitempty"`
	// status code to return
	StatusCode *int32 `json:"status_code,omitempty"`
}

type HTTPResponseBackendList added in v0.1.4

type HTTPResponseBackendList struct {
	Backends    []HTTPResponseBackend `json:"backends,omitempty"`
	URI         string                `json:"uri,omitempty"`
	NextPageURI *string               `json:"next_page_uri,omitempty"`
}

type HTTPResponseBackendUpdate added in v0.1.4

type HTTPResponseBackendUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this backend. Optional
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata *string `json:"metadata,omitempty"`
	// body to return as fixed content
	Body *string `json:"body,omitempty"`
	// headers to return
	Headers *map[string]string `json:"headers,omitempty"`
	// status code to return
	StatusCode *int32 `json:"status_code,omitempty"`
}

type HTTPSEdge added in v0.1.4

type HTTPSEdge struct {
	// unique identifier of this edge
	ID string `json:"id,omitempty"`
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge; optional, max 4096
	// bytes.
	Metadata string `json:"metadata,omitempty"`
	// timestamp when the edge configuration was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// URI of the edge API resource
	URI string `json:"uri,omitempty"`
	// hostports served by this edge
	Hostports *[]string `json:"hostports,omitempty"`
	// edge modules
	MutualTls      *EndpointMutualTLS      `json:"mutual_tls,omitempty"`
	TlsTermination *EndpointTLSTermination `json:"tls_termination,omitempty"`
	// routes
	Routes []HTTPSEdgeRoute `json:"routes,omitempty"`
}

type HTTPSEdgeCreate added in v0.1.4

type HTTPSEdgeCreate struct {
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge; optional, max 4096
	// bytes.
	Metadata string `json:"metadata,omitempty"`
	// hostports served by this edge
	Hostports *[]string `json:"hostports,omitempty"`
	// edge modules
	MutualTLS      *EndpointMutualTLSMutate      `json:"mutual_tls,omitempty"`
	TLSTermination *EndpointTLSTerminationAtEdge `json:"tls_termination,omitempty"`
}

type HTTPSEdgeList added in v0.1.4

type HTTPSEdgeList struct {
	// the list of all HTTPS Edges on this account
	HTTPSEdges []HTTPSEdge `json:"https_edges,omitempty"`
	// URI of the HTTPS Edge list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type HTTPSEdgeRoute added in v0.1.4

type HTTPSEdgeRoute struct {
	// unique identifier of this edge
	EdgeID string `json:"edge_id,omitempty"`
	// unique identifier of this edge route
	ID string `json:"id,omitempty"`
	// timestamp when the edge configuration was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// Type of match to use for this route. Valid values are "exact_path" and
	// "path_prefix".
	MatchType string `json:"match_type,omitempty"`
	// Route selector: "/blog" or "example.com" or "example.com/blog"
	Match string `json:"match,omitempty"`
	// URI of the edge API resource
	URI string `json:"uri,omitempty"`
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge. Optional, max 4096
	// bytes.
	Metadata string `json:"metadata,omitempty"`
	// backend module configuration or null
	Backend *EndpointBackend `json:"backend,omitempty"`
	// ip restriction module configuration or null
	IpRestriction *EndpointIPPolicy `json:"ip_restriction,omitempty"`
	// circuit breaker module configuration or null
	CircuitBreaker *EndpointCircuitBreaker `json:"circuit_breaker,omitempty"`
	// compression module configuration or null
	Compression *EndpointCompression `json:"compression,omitempty"`
	// request headers module configuration or null
	RequestHeaders *EndpointRequestHeaders `json:"request_headers,omitempty"`
	// response headers module configuration or null
	ResponseHeaders *EndpointResponseHeaders `json:"response_headers,omitempty"`
	// webhook verification module configuration or null
	WebhookVerification *EndpointWebhookValidation `json:"webhook_verification,omitempty"`
	// oauth module configuration or null
	OAuth *EndpointOAuth `json:"oauth,omitempty"`
	// saml module configuration or null
	SAML *EndpointSAML `json:"saml,omitempty"`
	// oidc module configuration or null
	OIDC *EndpointOIDC `json:"oidc,omitempty"`
	// websocket to tcp adapter configuration or null
	WebsocketTCPConverter *EndpointWebsocketTCPConverter `json:"websocket_tcp_converter,omitempty"`
	UserAgentFilter       *EndpointUserAgentFilter       `json:"user_agent_filter,omitempty"`
	// the traffic policy associated with this edge or null
	Policy *EndpointPolicy `json:"policy,omitempty"`
	// the traffic policy associated with this edge or null
	TrafficPolicy *EndpointTrafficPolicy `json:"traffic_policy,omitempty"`
}

type HTTPSEdgeRouteCreate added in v0.1.4

type HTTPSEdgeRouteCreate struct {
	// unique identifier of this edge
	EdgeID string `json:"edge_id,omitempty"`
	// Type of match to use for this route. Valid values are "exact_path" and
	// "path_prefix".
	MatchType string `json:"match_type,omitempty"`
	// Route selector: "/blog" or "example.com" or "example.com/blog"
	Match string `json:"match,omitempty"`
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge. Optional, max 4096
	// bytes.
	Metadata string `json:"metadata,omitempty"`
	// backend module configuration or null
	Backend *EndpointBackendMutate `json:"backend,omitempty"`
	// ip restriction module configuration or null
	IPRestriction *EndpointIPPolicyMutate `json:"ip_restriction,omitempty"`
	// circuit breaker module configuration or null
	CircuitBreaker *EndpointCircuitBreaker `json:"circuit_breaker,omitempty"`
	// compression module configuration or null
	Compression *EndpointCompression `json:"compression,omitempty"`
	// request headers module configuration or null
	RequestHeaders *EndpointRequestHeaders `json:"request_headers,omitempty"`
	// response headers module configuration or null
	ResponseHeaders *EndpointResponseHeaders `json:"response_headers,omitempty"`
	// webhook verification module configuration or null
	WebhookVerification *EndpointWebhookValidation `json:"webhook_verification,omitempty"`
	// oauth module configuration or null
	OAuth *EndpointOAuth `json:"oauth,omitempty"`
	// saml module configuration or null
	SAML *EndpointSAMLMutate `json:"saml,omitempty"`
	// oidc module configuration or null
	OIDC *EndpointOIDC `json:"oidc,omitempty"`
	// websocket to tcp adapter configuration or null
	WebsocketTCPConverter *EndpointWebsocketTCPConverter `json:"websocket_tcp_converter,omitempty"`
	UserAgentFilter       *EndpointUserAgentFilter       `json:"user_agent_filter,omitempty"`
	// the traffic policy associated with this edge or null
	Policy *EndpointPolicy `json:"policy,omitempty"`
	// the traffic policy associated with this edge or null
	TrafficPolicy *EndpointTrafficPolicy `json:"traffic_policy,omitempty"`
}

type HTTPSEdgeRouteUpdate added in v0.1.4

type HTTPSEdgeRouteUpdate struct {
	// unique identifier of this edge
	EdgeID string `json:"edge_id,omitempty"`
	// unique identifier of this edge route
	ID string `json:"id,omitempty"`
	// Type of match to use for this route. Valid values are "exact_path" and
	// "path_prefix".
	MatchType string `json:"match_type,omitempty"`
	// Route selector: "/blog" or "example.com" or "example.com/blog"
	Match string `json:"match,omitempty"`
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge. Optional, max 4096
	// bytes.
	Metadata string `json:"metadata,omitempty"`
	// backend module configuration or null
	Backend *EndpointBackendMutate `json:"backend,omitempty"`
	// ip restriction module configuration or null
	IPRestriction *EndpointIPPolicyMutate `json:"ip_restriction,omitempty"`
	// circuit breaker module configuration or null
	CircuitBreaker *EndpointCircuitBreaker `json:"circuit_breaker,omitempty"`
	// compression module configuration or null
	Compression *EndpointCompression `json:"compression,omitempty"`
	// request headers module configuration or null
	RequestHeaders *EndpointRequestHeaders `json:"request_headers,omitempty"`
	// response headers module configuration or null
	ResponseHeaders *EndpointResponseHeaders `json:"response_headers,omitempty"`
	// webhook verification module configuration or null
	WebhookVerification *EndpointWebhookValidation `json:"webhook_verification,omitempty"`
	// oauth module configuration or null
	OAuth *EndpointOAuth `json:"oauth,omitempty"`
	// saml module configuration or null
	SAML *EndpointSAMLMutate `json:"saml,omitempty"`
	// oidc module configuration or null
	OIDC *EndpointOIDC `json:"oidc,omitempty"`
	// websocket to tcp adapter configuration or null
	WebsocketTCPConverter *EndpointWebsocketTCPConverter `json:"websocket_tcp_converter,omitempty"`
	UserAgentFilter       *EndpointUserAgentFilter       `json:"user_agent_filter,omitempty"`
	// the traffic policy associated with this edge or null
	Policy *EndpointPolicy `json:"policy,omitempty"`
	// the traffic policy associated with this edge or null
	TrafficPolicy *EndpointTrafficPolicy `json:"traffic_policy,omitempty"`
}

type HTTPSEdgeUpdate added in v0.1.4

type HTTPSEdgeUpdate struct {
	// unique identifier of this edge
	ID string `json:"id,omitempty"`
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge; optional, max 4096
	// bytes.
	Metadata *string `json:"metadata,omitempty"`
	// hostports served by this edge
	Hostports *[]string `json:"hostports,omitempty"`
	// edge modules
	MutualTLS      *EndpointMutualTLSMutate      `json:"mutual_tls,omitempty"`
	TLSTermination *EndpointTLSTerminationAtEdge `json:"tls_termination,omitempty"`
}

type IPPolicy

type IPPolicy struct {
	// unique identifier for this IP policy
	ID string `json:"id,omitempty"`
	// URI of the IP Policy API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the IP policy was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of the source IPs of this IP policy. optional, max
	// 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this IP policy. optional, max
	// 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// this field is deprecated. Please leave it empty and use the ip policy rule
	// object's "action" field instead. It is temporarily retained for backwards
	// compatibility reasons.
	Action *string `json:"action,omitempty"`
}

type IPPolicyCreate

type IPPolicyCreate struct {
	// human-readable description of the source IPs of this IP policy. optional, max
	// 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this IP policy. optional, max
	// 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// this field is deprecated. Please leave it empty and use the ip policy rule
	// object's "action" field instead. It is temporarily retained for backwards
	// compatibility reasons.
	Action *string `json:"action,omitempty"`
}

type IPPolicyList

type IPPolicyList struct {
	// the list of all IP policies on this account
	IPPolicies []IPPolicy `json:"ip_policies,omitempty"`
	// URI of the IP policy list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type IPPolicyRule

type IPPolicyRule struct {
	// unique identifier for this IP policy rule
	ID string `json:"id,omitempty"`
	// URI of the IP policy rule API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the IP policy rule was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of the source IPs of this IP rule. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this IP policy rule. optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// an IP or IP range specified in CIDR notation. IPv4 and IPv6 are both supported.
	CIDR string `json:"cidr,omitempty"`
	// object describing the IP policy this IP Policy Rule belongs to
	IPPolicy Ref `json:"ip_policy,omitempty"`
	// the action to apply to the policy rule, either allow or deny
	Action string `json:"action,omitempty"`
}

type IPPolicyRuleCreate

type IPPolicyRuleCreate struct {
	// human-readable description of the source IPs of this IP rule. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this IP policy rule. optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// an IP or IP range specified in CIDR notation. IPv4 and IPv6 are both supported.
	CIDR string `json:"cidr,omitempty"`
	// ID of the IP policy this IP policy rule will be attached to
	IPPolicyID string `json:"ip_policy_id,omitempty"`
	// the action to apply to the policy rule, either allow or deny
	Action *string `json:"action,omitempty"`
}

type IPPolicyRuleList

type IPPolicyRuleList struct {
	// the list of all IP policy rules on this account
	IPPolicyRules []IPPolicyRule `json:"ip_policy_rules,omitempty"`
	// URI of the IP policy rule list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type IPPolicyRuleUpdate

type IPPolicyRuleUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of the source IPs of this IP rule. optional, max 255
	// bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this IP policy rule. optional,
	// max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
	// an IP or IP range specified in CIDR notation. IPv4 and IPv6 are both supported.
	CIDR *string `json:"cidr,omitempty"`
}

type IPPolicyUpdate

type IPPolicyUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of the source IPs of this IP policy. optional, max
	// 255 bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this IP policy. optional, max
	// 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
}

type IPRestriction

type IPRestriction struct {
	// unique identifier for this IP restriction
	ID string `json:"id,omitempty"`
	// URI of the IP restriction API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the IP restriction was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this IP restriction. optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this IP restriction. optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// true if the IP restriction will be enforced. if false, only warnings will be
	// issued
	Enforced bool `json:"enforced,omitempty"`
	// the type of IP restriction. this defines what traffic will be restricted with
	// the attached policies. four values are currently supported: dashboard, api,
	// agent, and endpoints
	Type string `json:"type,omitempty"`
	// the set of IP policies that are used to enforce the restriction
	IPPolicies []Ref `json:"ip_policies,omitempty"`
}

type IPRestrictionCreate

type IPRestrictionCreate struct {
	// human-readable description of this IP restriction. optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this IP restriction. optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// true if the IP restriction will be enforced. if false, only warnings will be
	// issued
	Enforced bool `json:"enforced,omitempty"`
	// the type of IP restriction. this defines what traffic will be restricted with
	// the attached policies. four values are currently supported: dashboard, api,
	// agent, and endpoints
	Type string `json:"type,omitempty"`
	// the set of IP policy identifiers that are used to enforce the restriction
	IPPolicyIDs []string `json:"ip_policy_ids,omitempty"`
}

type IPRestrictionList

type IPRestrictionList struct {
	// the list of all IP restrictions on this account
	IPRestrictions []IPRestriction `json:"ip_restrictions,omitempty"`
	// URI of the IP restrictions list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type IPRestrictionUpdate

type IPRestrictionUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this IP restriction. optional, max 255 bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this IP restriction. optional,
	// max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
	// true if the IP restriction will be enforced. if false, only warnings will be
	// issued
	Enforced *bool `json:"enforced,omitempty"`
	// the set of IP policy identifiers that are used to enforce the restriction
	IPPolicyIDs []string `json:"ip_policy_ids,omitempty"`
}

type IdentityProvider added in v0.1.5

type IdentityProvider struct {
	// name of the identity provider (e.g. Google)
	Name string `json:"name,omitempty"`
	// URL of the identity provider (e.g. https://accounts.google.com
	// (https://accounts.google.com))
	URL string `json:"url,omitempty"`
}

type Item

type Item struct {
	// a resource identifier
	ID string `json:"id,omitempty"`
}

type KubernetesOperator added in v0.4.0

type KubernetesOperator struct {
	// unique identifier for this Kubernetes Operator
	ID string `json:"id,omitempty"`
	// URI of this Kubernetes Operator API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the Kubernetes Operator was created. RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// timestamp when the Kubernetes Operator was last updated. RFC 3339 format
	UpdatedAt string `json:"updated_at,omitempty"`
	// human-readable description of this Kubernetes Operator. optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this Kubernetes Operator.
	// optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// the principal who created this Kubernetes Operator
	Principal Ref `json:"principal,omitempty"`
	// features enabled for this Kubernetes Operator. a subset of {"bindings",
	// "ingress", and "gateway"}
	EnabledFeatures []string `json:"enabled_features,omitempty"`
	// the ngrok region in which the ingress for this operator is served. defaults to
	// "global"
	Region string `json:"region,omitempty"`
	// information about the deployment of this Kubernetes Operator
	Deployment KubernetesOperatorDeployment `json:"deployment,omitempty"`
	// information about the Bindings feature of this Kubernetes Operator, if enabled
	Binding *KubernetesOperatorBinding `json:"binding,omitempty"`
}

type KubernetesOperatorBinding added in v0.4.0

type KubernetesOperatorBinding struct {
	// the name by which endpoints can be bound to this Kubernetes Operator. starts
	// with "k8s/"
	Name string `json:"name,omitempty"`
	// the regexes for urls allowed to be bound to this operator
	AllowedURLs []string `json:"allowed_urls,omitempty"`
	// the binding certificate information
	Cert KubernetesOperatorCert `json:"cert,omitempty"`
	// the public ingress endpoint for this Kubernetes Operator
	IngressEndpoint string `json:"ingress_endpoint,omitempty"`
}

type KubernetesOperatorBindingCreate added in v0.4.0

type KubernetesOperatorBindingCreate struct {
	// the name by which endpoints can be bound to this Kubernetes Operator. starts
	// with "k8s/"
	Name string `json:"name,omitempty"`
	// the regexes for urls allowed to be bound to this operator
	AllowedURLs []string `json:"allowed_urls,omitempty"`
	// CSR is supplied during initial creation to enable creating a mutual TLS secured
	// connection between ngrok and the operator. This is an internal implementation
	// detail and subject to change.
	CSR string `json:"csr,omitempty"`
	// the public ingress endpoint for this Kubernetes Operator
	IngressEndpoint *string `json:"ingress_endpoint,omitempty"`
}

type KubernetesOperatorBindingUpdate added in v0.4.0

type KubernetesOperatorBindingUpdate struct {
	// the name by which endpoints can be bound to this Kubernetes Operator. starts
	// with "k8s/"
	Name *string `json:"name,omitempty"`
	// the regexes for urls allowed to be bound to this operator
	AllowedURLs *[]string `json:"allowed_urls,omitempty"`
	// CSR is supplied during initial creation to enable creating a mutual TLS secured
	// connection between ngrok and the operator. This is an internal implementation
	// detail and subject to change.
	CSR *string `json:"csr,omitempty"`
	// the public ingress endpoint for this Kubernetes Operator
	IngressEndpoint *string `json:"ingress_endpoint,omitempty"`
}

type KubernetesOperatorCert added in v0.4.0

type KubernetesOperatorCert struct {
	// the public client certificate generated for this Kubernetes Operator from the
	// CSR supplied when enabling the Bindings feature
	Cert string `json:"cert,omitempty"`
	// timestamp when the certificate becomes valid. RFC 3339 format
	NotBefore string `json:"not_before,omitempty"`
	// timestamp when the certificate becomes invalid. RFC 3339 format
	NotAfter string `json:"not_after,omitempty"`
}

type KubernetesOperatorCreate added in v0.4.0

type KubernetesOperatorCreate struct {
	// human-readable description of this Kubernetes Operator. optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this Kubernetes Operator.
	// optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// features enabled for this Kubernetes Operator. a subset of {"bindings",
	// "ingress", and "gateway"}
	EnabledFeatures []string `json:"enabled_features,omitempty"`
	// the ngrok region in which the ingress for this operator is served. defaults to
	// "global"
	Region string `json:"region,omitempty"`
	// information about the deployment of this Kubernetes Operator
	Deployment KubernetesOperatorDeployment `json:"deployment,omitempty"`
	// configuration for the Bindings feature of this Kubernetes Operator. set only if
	// enabling the "bindings" feature
	Binding *KubernetesOperatorBindingCreate `json:"binding,omitempty"`
}

type KubernetesOperatorDeployment added in v0.4.0

type KubernetesOperatorDeployment struct {
	// the deployment name
	Name string `json:"name,omitempty"`
	// the namespace this Kubernetes Operator is deployed to
	Namespace string `json:"namespace,omitempty"`
	// the version of this Kubernetes Operator
	Version string `json:"version,omitempty"`
}

type KubernetesOperatorList added in v0.4.0

type KubernetesOperatorList struct {
	// the list of Kubernetes Operators for this account
	Operators []KubernetesOperator `json:"operators,omitempty"`
	URI       string               `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type KubernetesOperatorUpdate added in v0.4.0

type KubernetesOperatorUpdate struct {
	// unique identifier for this Kubernetes Operator
	ID string `json:"id,omitempty"`
	// human-readable description of this Kubernetes Operator. optional, max 255 bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this Kubernetes Operator.
	// optional, max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
	// features enabled for this Kubernetes Operator. a subset of {"bindings",
	// "ingress", and "gateway"}
	EnabledFeatures *[]string `json:"enabled_features,omitempty"`
	// the ngrok region in which the ingress for this operator is served. defaults to
	// "global"
	Region *string `json:"region,omitempty"`
	// configuration for the Bindings feature of this Kubernetes Operator. set only if
	// enabling the "bindings" feature
	Binding *KubernetesOperatorBindingUpdate `json:"binding,omitempty"`
}

type Location added in v0.1.5

type Location struct {
	// ISO country code
	CountryCode *string `json:"country_code,omitempty"`
	// geographical latitude
	Latitude *float64 `json:"latitude,omitempty"`
	// geographical longitude
	Longitude *float64 `json:"longitude,omitempty"`
	// accuracy radius of the geographical coordinates
	LatLongRadiusKm *uint64 `json:"lat_long_radius_km,omitempty"`
}

type Paging

type Paging struct {
	BeforeID *string `json:"before_id,omitempty"`
	Limit    *string `json:"limit,omitempty"`
}

type Ref

type Ref struct {
	// a resource identifier
	ID string `json:"id,omitempty"`
	// a uri for locating a resource
	URI string `json:"uri,omitempty"`
}

type ReservedAddr

type ReservedAddr struct {
	// unique reserved address resource identifier
	ID string `json:"id,omitempty"`
	// URI of the reserved address API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the reserved address was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of what this reserved address will be used for
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this reserved address. Optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// hostname:port of the reserved address that was assigned at creation time
	Addr string `json:"addr,omitempty"`
	// reserve the address in this geographic ngrok datacenter. Optional, default is
	// us. (au, eu, ap, us, jp, in, sa)
	Region string `json:"region,omitempty"`
	// object reference to the endpoint configuration that will be applied to traffic
	// to this address
	EndpointConfiguration *Ref `json:"endpoint_configuration,omitempty"`
}

type ReservedAddrCreate

type ReservedAddrCreate struct {
	// human-readable description of what this reserved address will be used for
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this reserved address. Optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// reserve the address in this geographic ngrok datacenter. Optional, default is
	// us. (au, eu, ap, us, jp, in, sa)
	Region string `json:"region,omitempty"`
	// ID of an endpoint configuration of type tcp that will be used to handle inbound
	// traffic to this address
	EndpointConfigurationID *string `json:"endpoint_configuration_id,omitempty"`
}

type ReservedAddrList

type ReservedAddrList struct {
	// the list of all reserved addresses on this account
	ReservedAddrs []ReservedAddr `json:"reserved_addrs,omitempty"`
	// URI of the reserved address list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type ReservedAddrUpdate

type ReservedAddrUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of what this reserved address will be used for
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this reserved address. Optional,
	// max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
	// ID of an endpoint configuration of type tcp that will be used to handle inbound
	// traffic to this address
	EndpointConfigurationID *string `json:"endpoint_configuration_id,omitempty"`
}

type ReservedDomain

type ReservedDomain struct {
	// unique reserved domain resource identifier
	ID string `json:"id,omitempty"`
	// URI of the reserved domain API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the reserved domain was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of what this reserved domain will be used for
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this reserved domain. Optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// hostname of the reserved domain
	Domain string `json:"domain,omitempty"`
	// deprecated: With the launch of the ngrok Global Network domains traffic is now
	// handled globally. This field applied only to endpoints. Note that agents may
	// still connect to specific regions. Optional, null by default. (au, eu, ap, us,
	// jp, in, sa)
	Region string `json:"region,omitempty"`
	// DNS CNAME target for a custom hostname, or null if the reserved domain is a
	// subdomain of an ngrok owned domain (e.g. *.ngrok.app)
	CNAMETarget *string `json:"cname_target,omitempty"`
	// object referencing the endpoint configuration applied to http traffic on this
	// domain
	HTTPEndpointConfiguration *Ref `json:"http_endpoint_configuration,omitempty"`
	// object referencing the endpoint configuration applied to https traffic on this
	// domain
	HTTPSEndpointConfiguration *Ref `json:"https_endpoint_configuration,omitempty"`
	// object referencing the TLS certificate used for connections to this domain. This
	// can be either a user-uploaded certificate, the most recently issued automatic
	// one, or null otherwise.
	Certificate *Ref `json:"certificate,omitempty"`
	// configuration for automatic management of TLS certificates for this domain, or
	// null if automatic management is disabled
	CertificateManagementPolicy *ReservedDomainCertPolicy `json:"certificate_management_policy,omitempty"`
	// status of the automatic certificate management for this domain, or null if
	// automatic management is disabled
	CertificateManagementStatus *ReservedDomainCertStatus `json:"certificate_management_status,omitempty"`
	// DNS CNAME target for the host _acme-challenge.example.com, where example.com is
	// your reserved domain name. This is required to issue certificates for wildcard,
	// non-ngrok reserved domains. Must be null for non-wildcard domains and ngrok
	// subdomains.
	ACMEChallengeCNAMETarget *string `json:"acme_challenge_cname_target,omitempty"`
	// Custom URL with CEL Expression Variable support for redirecting when an ngrok
	// error occurs. Max 10000 bytes.
	ErrorRedirectURL *string `json:"error_redirect_url,omitempty"`
}

type ReservedDomainCertJob

type ReservedDomainCertJob struct {
	// if present, an error code indicating why provisioning is failing. It may be
	// either a temporary condition (INTERNAL_ERROR), or a permanent one the user must
	// correct (DNS_ERROR).
	ErrorCode *string `json:"error_code,omitempty"`
	// a message describing the current status or error
	Msg string `json:"msg,omitempty"`
	// timestamp when the provisioning job started, RFC 3339 format
	StartedAt string `json:"started_at,omitempty"`
	// timestamp when the provisioning job will be retried
	RetriesAt *string `json:"retries_at,omitempty"`
}

type ReservedDomainCertPolicy

type ReservedDomainCertPolicy struct {
	// certificate authority to request certificates from. The only supported value is
	// letsencrypt.
	Authority string `json:"authority,omitempty"`
	// type of private key to use when requesting certificates. Defaults to ecdsa, can
	// be either rsa or ecdsa.
	PrivateKeyType string `json:"private_key_type,omitempty"`
}

type ReservedDomainCertStatus

type ReservedDomainCertStatus struct {
	// timestamp when the next renewal will be requested, RFC 3339 format
	RenewsAt *string `json:"renews_at,omitempty"`
	// status of the certificate provisioning job, or null if the certificiate isn't
	// being provisioned or renewed
	ProvisioningJob *ReservedDomainCertJob `json:"provisioning_job,omitempty"`
}

type ReservedDomainCreate

type ReservedDomainCreate struct {
	// the domain name to reserve. It may be a full domain name like app.example.com.
	// If the name does not contain a '.' it will reserve that subdomain on ngrok.io.
	Name string `json:"name,omitempty"`
	// hostname of the reserved domain
	Domain string `json:"domain,omitempty"`
	// deprecated: With the launch of the ngrok Global Network domains traffic is now
	// handled globally. This field applied only to endpoints. Note that agents may
	// still connect to specific regions. Optional, null by default. (au, eu, ap, us,
	// jp, in, sa)
	Region string `json:"region,omitempty"`
	// human-readable description of what this reserved domain will be used for
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this reserved domain. Optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// ID of an endpoint configuration of type http that will be used to handle inbound
	// http traffic to this domain
	HTTPEndpointConfigurationID *string `json:"http_endpoint_configuration_id,omitempty"`
	// ID of an endpoint configuration of type https that will be used to handle
	// inbound https traffic to this domain
	HTTPSEndpointConfigurationID *string `json:"https_endpoint_configuration_id,omitempty"`
	// ID of a user-uploaded TLS certificate to use for connections to targeting this
	// domain. Optional, mutually exclusive with certificate_management_policy.
	CertificateID *string `json:"certificate_id,omitempty"`
	// configuration for automatic management of TLS certificates for this domain, or
	// null if automatic management is disabled. Optional, mutually exclusive with
	// certificate_id.
	CertificateManagementPolicy *ReservedDomainCertPolicy `json:"certificate_management_policy,omitempty"`
	// Custom URL with CEL Expression Variable support for redirecting when an ngrok
	// error occurs. Max 10000 bytes.
	ErrorRedirectUrl *string `json:"error_redirect_url,omitempty"`
}

type ReservedDomainList

type ReservedDomainList struct {
	// the list of all reserved domains on this account
	ReservedDomains []ReservedDomain `json:"reserved_domains,omitempty"`
	// URI of the reserved domain list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type ReservedDomainUpdate

type ReservedDomainUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of what this reserved domain will be used for
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this reserved domain. Optional,
	// max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
	// ID of an endpoint configuration of type http that will be used to handle inbound
	// http traffic to this domain
	HTTPEndpointConfigurationID *string `json:"http_endpoint_configuration_id,omitempty"`
	// ID of an endpoint configuration of type https that will be used to handle
	// inbound https traffic to this domain
	HTTPSEndpointConfigurationID *string `json:"https_endpoint_configuration_id,omitempty"`
	// ID of a user-uploaded TLS certificate to use for connections to targeting this
	// domain. Optional, mutually exclusive with certificate_management_policy.
	CertificateID *string `json:"certificate_id,omitempty"`
	// configuration for automatic management of TLS certificates for this domain, or
	// null if automatic management is disabled. Optional, mutually exclusive with
	// certificate_id.
	CertificateManagementPolicy *ReservedDomainCertPolicy `json:"certificate_management_policy,omitempty"`
	// deprecated: With the launch of the ngrok Global Network domains traffic is now
	// handled globally. This field applied only to endpoints. Note that agents may
	// still connect to specific regions. Optional, null by default. (au, eu, ap, us,
	// jp, in, sa)
	Region *string `json:"region,omitempty"`
	// Custom URL with CEL Expression Variable support for redirecting when an ngrok
	// error occurs. Max 10000 bytes.
	ErrorRedirectUrl *string `json:"error_redirect_url,omitempty"`
}

type RootResponse

type RootResponse struct {
	URI             string            `json:"uri,omitempty"`
	SubresourceURIs map[string]string `json:"subresource_uris,omitempty"`
}

type SSHCertificateAuthority

type SSHCertificateAuthority struct {
	// unique identifier for this SSH Certificate Authority
	ID string `json:"id,omitempty"`
	// URI of the SSH Certificate Authority API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the SSH Certificate Authority API resource was created, RFC 3339
	// format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this SSH Certificate Authority. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this SSH Certificate Authority.
	// optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// raw public key for this SSH Certificate Authority
	PublicKey string `json:"public_key,omitempty"`
	// the type of private key for this SSH Certificate Authority
	KeyType string `json:"key_type,omitempty"`
}

type SSHCertificateAuthorityCreate

type SSHCertificateAuthorityCreate struct {
	// human-readable description of this SSH Certificate Authority. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this SSH Certificate Authority.
	// optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// the type of private key to generate. one of rsa, ecdsa, ed25519
	PrivateKeyType string `json:"private_key_type,omitempty"`
	// the type of elliptic curve to use when creating an ECDSA key
	EllipticCurve string `json:"elliptic_curve,omitempty"`
	// the key size to use when creating an RSA key. one of 2048 or 4096
	KeySize int64 `json:"key_size,omitempty"`
}

type SSHCertificateAuthorityList

type SSHCertificateAuthorityList struct {
	// the list of all certificate authorities on this account
	SSHCertificateAuthorities []SSHCertificateAuthority `json:"ssh_certificate_authorities,omitempty"`
	// URI of the certificates authorities list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type SSHCertificateAuthorityUpdate

type SSHCertificateAuthorityUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this SSH Certificate Authority. optional, max 255
	// bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this SSH Certificate Authority.
	// optional, max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
}

type SSHCredential

type SSHCredential struct {
	// unique ssh credential resource identifier
	ID string `json:"id,omitempty"`
	// URI of the ssh credential API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the ssh credential was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of who or what will use the ssh credential to
	// authenticate. Optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this ssh credential. Optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// the PEM-encoded public key of the SSH keypair that will be used to authenticate
	PublicKey string `json:"public_key,omitempty"`
	// optional list of ACL rules. If unspecified, the credential will have no
	// restrictions. The only allowed ACL rule at this time is the bind rule. The bind
	// rule allows the caller to restrict what domains, addresses, and labels the token
	// is allowed to bind. For example, to allow the token to open a tunnel on
	// example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind
	// rules for domains may specify a leading wildcard to match multiple domains with
	// a common suffix. For example, you may specify a rule of bind:*.example.com which
	// will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for
	// labels may specify a wildcard key and/or value to match multiple labels. For
	// example, you may specify a rule of bind:*=example which will allow x=example,
	// y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly
	// permit all actions.
	ACL []string `json:"acl,omitempty"`
	// If supplied at credential creation, ownership will be assigned to the specified
	// User or Bot. Only admins may specify an owner other than themselves. Defaults to
	// the authenticated User or Bot.
	OwnerID *string `json:"owner_id,omitempty"`
}

type SSHCredentialCreate

type SSHCredentialCreate struct {
	// human-readable description of who or what will use the ssh credential to
	// authenticate. Optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this ssh credential. Optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// optional list of ACL rules. If unspecified, the credential will have no
	// restrictions. The only allowed ACL rule at this time is the bind rule. The bind
	// rule allows the caller to restrict what domains, addresses, and labels the token
	// is allowed to bind. For example, to allow the token to open a tunnel on
	// example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind
	// rules for domains may specify a leading wildcard to match multiple domains with
	// a common suffix. For example, you may specify a rule of bind:*.example.com which
	// will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for
	// labels may specify a wildcard key and/or value to match multiple labels. For
	// example, you may specify a rule of bind:*=example which will allow x=example,
	// y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly
	// permit all actions.
	ACL []string `json:"acl,omitempty"`
	// the PEM-encoded public key of the SSH keypair that will be used to authenticate
	PublicKey string `json:"public_key,omitempty"`
	// If supplied at credential creation, ownership will be assigned to the specified
	// User or Bot. Only admins may specify an owner other than themselves. Defaults to
	// the authenticated User or Bot.
	OwnerID *string `json:"owner_id,omitempty"`
	// If supplied at credential creation, ownership will be assigned to the specified
	// User. Only admins may specify an owner other than themselves. Both owner_id and
	// owner_email may not be specified.
	OwnerEmail string `json:"owner_email,omitempty"`
}

type SSHCredentialList

type SSHCredentialList struct {
	// the list of all ssh credentials on this account
	SSHCredentials []SSHCredential `json:"ssh_credentials,omitempty"`
	// URI of the ssh credential list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type SSHCredentialUpdate

type SSHCredentialUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of who or what will use the ssh credential to
	// authenticate. Optional, max 255 bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this ssh credential. Optional,
	// max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
	// optional list of ACL rules. If unspecified, the credential will have no
	// restrictions. The only allowed ACL rule at this time is the bind rule. The bind
	// rule allows the caller to restrict what domains, addresses, and labels the token
	// is allowed to bind. For example, to allow the token to open a tunnel on
	// example.ngrok.io your ACL would include the rule bind:example.ngrok.io. Bind
	// rules for domains may specify a leading wildcard to match multiple domains with
	// a common suffix. For example, you may specify a rule of bind:*.example.com which
	// will allow x.example.com, y.example.com, *.example.com, etc. Bind rules for
	// labels may specify a wildcard key and/or value to match multiple labels. For
	// example, you may specify a rule of bind:*=example which will allow x=example,
	// y=example, etc. A rule of '*' is equivalent to no acl at all and will explicitly
	// permit all actions.
	ACL *[]string `json:"acl,omitempty"`
}

type SSHHostCertificate

type SSHHostCertificate struct {
	// unique identifier for this SSH Host Certificate
	ID string `json:"id,omitempty"`
	// URI of the SSH Host Certificate API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the SSH Host Certificate API resource was created, RFC 3339
	// format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this SSH Host Certificate. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this SSH Host Certificate.
	// optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// a public key in OpenSSH Authorized Keys format that this certificate signs
	PublicKey string `json:"public_key,omitempty"`
	// the key type of the public_key, one of rsa, ecdsa or ed25519
	KeyType string `json:"key_type,omitempty"`
	// the ssh certificate authority that is used to sign this ssh host certificate
	SSHCertificateAuthorityID string `json:"ssh_certificate_authority_id,omitempty"`
	// the list of principals included in the ssh host certificate. This is the list of
	// hostnames and/or IP addresses that are authorized to serve SSH traffic with this
	// certificate. Dangerously, if no principals are specified, this certificate is
	// considered valid for all hosts.
	Principals []string `json:"principals,omitempty"`
	// the time when the ssh host certificate becomes valid, in RFC 3339 format.
	ValidAfter string `json:"valid_after,omitempty"`
	// the time after which the ssh host certificate becomes invalid, in RFC 3339
	// format. the OpenSSH certificates RFC calls this valid_before.
	ValidUntil string `json:"valid_until,omitempty"`
	// the signed SSH certificate in OpenSSH Authorized Keys format. this value should
	// be placed in a -cert.pub certificate file on disk that should be referenced in
	// your sshd_config configuration file with a HostCertificate directive
	Certificate string `json:"certificate,omitempty"`
}

type SSHHostCertificateCreate

type SSHHostCertificateCreate struct {
	// the ssh certificate authority that is used to sign this ssh host certificate
	SSHCertificateAuthorityID string `json:"ssh_certificate_authority_id,omitempty"`
	// a public key in OpenSSH Authorized Keys format that this certificate signs
	PublicKey string `json:"public_key,omitempty"`
	// the list of principals included in the ssh host certificate. This is the list of
	// hostnames and/or IP addresses that are authorized to serve SSH traffic with this
	// certificate. Dangerously, if no principals are specified, this certificate is
	// considered valid for all hosts.
	Principals []string `json:"principals,omitempty"`
	// The time when the host certificate becomes valid, in RFC 3339 format. Defaults
	// to the current time if unspecified.
	ValidAfter string `json:"valid_after,omitempty"`
	// The time when this host certificate becomes invalid, in RFC 3339 format. If
	// unspecified, a default value of one year in the future will be used. The OpenSSH
	// certificates RFC calls this valid_before.
	ValidUntil string `json:"valid_until,omitempty"`
	// human-readable description of this SSH Host Certificate. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this SSH Host Certificate.
	// optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
}

type SSHHostCertificateList

type SSHHostCertificateList struct {
	// the list of all ssh host certificates on this account
	SSHHostCertificates []SSHHostCertificate `json:"ssh_host_certificates,omitempty"`
	// URI of the ssh host certificates list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type SSHHostCertificateUpdate

type SSHHostCertificateUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this SSH Host Certificate. optional, max 255
	// bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this SSH Host Certificate.
	// optional, max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
}

type SSHUserCertificate

type SSHUserCertificate struct {
	// unique identifier for this SSH User Certificate
	ID string `json:"id,omitempty"`
	// URI of the SSH User Certificate API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the SSH User Certificate API resource was created, RFC 3339
	// format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this SSH User Certificate. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this SSH User Certificate.
	// optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// a public key in OpenSSH Authorized Keys format that this certificate signs
	PublicKey string `json:"public_key,omitempty"`
	// the key type of the public_key, one of rsa, ecdsa or ed25519
	KeyType string `json:"key_type,omitempty"`
	// the ssh certificate authority that is used to sign this ssh user certificate
	SSHCertificateAuthorityID string `json:"ssh_certificate_authority_id,omitempty"`
	// the list of principals included in the ssh user certificate. This is the list of
	// usernames that the certificate holder may sign in as on a machine authorizing
	// the signing certificate authority. Dangerously, if no principals are specified,
	// this certificate may be used to log in as any user.
	Principals []string `json:"principals,omitempty"`
	// A map of critical options included in the certificate. Only two critical options
	// are currently defined by OpenSSH: force-command and source-address. See the
	// OpenSSH certificate protocol spec
	// (https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys) for
	// additional details.
	CriticalOptions map[string]string `json:"critical_options,omitempty"`
	// A map of extensions included in the certificate. Extensions are additional
	// metadata that can be interpreted by the SSH server for any purpose. These can be
	// used to permit or deny the ability to open a terminal, do port forwarding, x11
	// forwarding, and more. If unspecified, the certificate will include limited
	// permissions with the following extension map: {"permit-pty": "",
	// "permit-user-rc": ""} OpenSSH understands a number of predefined extensions. See
	// the OpenSSH certificate protocol spec
	// (https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys) for
	// additional details.
	Extensions map[string]string `json:"extensions,omitempty"`
	// the time when the ssh host certificate becomes valid, in RFC 3339 format.
	ValidAfter string `json:"valid_after,omitempty"`
	// the time after which the ssh host certificate becomes invalid, in RFC 3339
	// format. the OpenSSH certificates RFC calls this valid_before.
	ValidUntil string `json:"valid_until,omitempty"`
	// the signed SSH certificate in OpenSSH Authorized Keys Format. this value should
	// be placed in a -cert.pub certificate file on disk that should be referenced in
	// your sshd_config configuration file with a HostCertificate directive
	Certificate string `json:"certificate,omitempty"`
}

type SSHUserCertificateCreate

type SSHUserCertificateCreate struct {
	// the ssh certificate authority that is used to sign this ssh user certificate
	SSHCertificateAuthorityID string `json:"ssh_certificate_authority_id,omitempty"`
	// a public key in OpenSSH Authorized Keys format that this certificate signs
	PublicKey string `json:"public_key,omitempty"`
	// the list of principals included in the ssh user certificate. This is the list of
	// usernames that the certificate holder may sign in as on a machine authorizing
	// the signing certificate authority. Dangerously, if no principals are specified,
	// this certificate may be used to log in as any user.
	Principals []string `json:"principals,omitempty"`
	// A map of critical options included in the certificate. Only two critical options
	// are currently defined by OpenSSH: force-command and source-address. See the
	// OpenSSH certificate protocol spec
	// (https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys) for
	// additional details.
	CriticalOptions map[string]string `json:"critical_options,omitempty"`
	// A map of extensions included in the certificate. Extensions are additional
	// metadata that can be interpreted by the SSH server for any purpose. These can be
	// used to permit or deny the ability to open a terminal, do port forwarding, x11
	// forwarding, and more. If unspecified, the certificate will include limited
	// permissions with the following extension map: {"permit-pty": "",
	// "permit-user-rc": ""} OpenSSH understands a number of predefined extensions. See
	// the OpenSSH certificate protocol spec
	// (https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys) for
	// additional details.
	Extensions map[string]string `json:"extensions,omitempty"`
	// The time when the user certificate becomes valid, in RFC 3339 format. Defaults
	// to the current time if unspecified.
	ValidAfter string `json:"valid_after,omitempty"`
	// The time when this host certificate becomes invalid, in RFC 3339 format. If
	// unspecified, a default value of 24 hours will be used. The OpenSSH certificates
	// RFC calls this valid_before.
	ValidUntil string `json:"valid_until,omitempty"`
	// human-readable description of this SSH User Certificate. optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this SSH User Certificate.
	// optional, max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
}

type SSHUserCertificateList

type SSHUserCertificateList struct {
	// the list of all ssh user certificates on this account
	SSHUserCertificates []SSHUserCertificate `json:"ssh_user_certificates,omitempty"`
	// URI of the ssh user certificates list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type SSHUserCertificateUpdate

type SSHUserCertificateUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this SSH User Certificate. optional, max 255
	// bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this SSH User Certificate.
	// optional, max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
}

type SentEvent

type SentEvent struct {
	EventID string `json:"event_id,omitempty"`
}

type StaticBackend

type StaticBackend struct {
	// unique identifier for this static backend
	ID string `json:"id,omitempty"`
	// URI of the StaticBackend API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the backend was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this backend. Optional
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata string `json:"metadata,omitempty"`
	// the address to forward to
	Address string `json:"address,omitempty"`
	// tls configuration to use
	TLS StaticBackendTLS `json:"tls,omitempty"`
}

type StaticBackendCreate

type StaticBackendCreate struct {
	// human-readable description of this backend. Optional
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata string `json:"metadata,omitempty"`
	// the address to forward to
	Address string `json:"address,omitempty"`
	// tls configuration to use
	TLS StaticBackendTLS `json:"tls,omitempty"`
}

type StaticBackendList

type StaticBackendList struct {
	// the list of all static backends on this account
	Backends []StaticBackend `json:"backends,omitempty"`
	// URI of the static backends list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type StaticBackendTLS

type StaticBackendTLS struct {
	// if TLS is checked
	Enabled bool `json:"enabled,omitempty"`
}

type StaticBackendUpdate

type StaticBackendUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this backend. Optional
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata *string `json:"metadata,omitempty"`
	// the address to forward to
	Address string `json:"address,omitempty"`
	// tls configuration to use
	TLS StaticBackendTLS `json:"tls,omitempty"`
}

type TCPEdge added in v0.1.1

type TCPEdge struct {
	// unique identifier of this edge
	ID string `json:"id,omitempty"`
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge. Optional, max 4096
	// bytes.
	Metadata string `json:"metadata,omitempty"`
	// timestamp when the edge was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// URI of the edge API resource
	URI string `json:"uri,omitempty"`
	// hostports served by this edge
	Hostports *[]string `json:"hostports,omitempty"`
	// edge modules
	Backend       *EndpointBackend  `json:"backend,omitempty"`
	IpRestriction *EndpointIPPolicy `json:"ip_restriction,omitempty"`
	// the traffic policy associated with this edge or null
	Policy *EndpointPolicy `json:"policy,omitempty"`
	// the traffic policy associated with this edge or null
	TrafficPolicy *EndpointTrafficPolicy `json:"traffic_policy,omitempty"`
}

type TCPEdgeCreate added in v0.1.1

type TCPEdgeCreate struct {
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge. Optional, max 4096
	// bytes.
	Metadata string `json:"metadata,omitempty"`
	// hostports served by this edge
	Hostports *[]string `json:"hostports,omitempty"`
	// edge modules
	Backend       *EndpointBackendMutate  `json:"backend,omitempty"`
	IPRestriction *EndpointIPPolicyMutate `json:"ip_restriction,omitempty"`
	// the traffic policy associated with this edge or null
	Policy *EndpointPolicy `json:"policy,omitempty"`
	// the traffic policy associated with this edge or null
	TrafficPolicy *EndpointTrafficPolicy `json:"traffic_policy,omitempty"`
}

type TCPEdgeList added in v0.1.3

type TCPEdgeList struct {
	// the list of all TCP Edges on this account
	TCPEdges []TCPEdge `json:"tcp_edges,omitempty"`
	// URI of the TCP Edge list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type TCPEdgeUpdate added in v0.1.1

type TCPEdgeUpdate struct {
	// unique identifier of this edge
	ID string `json:"id,omitempty"`
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge. Optional, max 4096
	// bytes.
	Metadata *string `json:"metadata,omitempty"`
	// hostports served by this edge
	Hostports *[]string `json:"hostports,omitempty"`
	// edge modules
	Backend       *EndpointBackendMutate  `json:"backend,omitempty"`
	IPRestriction *EndpointIPPolicyMutate `json:"ip_restriction,omitempty"`
	// the traffic policy associated with this edge or null
	Policy *EndpointPolicy `json:"policy,omitempty"`
	// the traffic policy associated with this edge or null
	TrafficPolicy *EndpointTrafficPolicy `json:"traffic_policy,omitempty"`
}

type TLSCertificate

type TLSCertificate struct {
	// unique identifier for this TLS certificate
	ID string `json:"id,omitempty"`
	// URI of the TLS certificate API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the TLS certificate was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this TLS certificate. optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this TLS certificate. optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// chain of PEM-encoded certificates, leaf first. See Certificate Bundles
	// (https://ngrok.com/docs/cloud-edge/endpoints#certificate-chains).
	CertificatePEM string `json:"certificate_pem,omitempty"`
	// subject common name from the leaf of this TLS certificate
	SubjectCommonName string `json:"subject_common_name,omitempty"`
	// subject alternative names (SANs) from the leaf of this TLS certificate
	SubjectAlternativeNames TLSCertificateSANs `json:"subject_alternative_names,omitempty"`
	// timestamp (in RFC 3339 format) when this TLS certificate was issued
	// automatically, or null if this certificate was user-uploaded
	IssuedAt *string `json:"issued_at,omitempty"`
	// timestamp when this TLS certificate becomes valid, RFC 3339 format
	NotBefore string `json:"not_before,omitempty"`
	// timestamp when this TLS certificate becomes invalid, RFC 3339 format
	NotAfter string `json:"not_after,omitempty"`
	// set of actions the private key of this TLS certificate can be used for
	KeyUsages []string `json:"key_usages,omitempty"`
	// extended set of actions the private key of this TLS certificate can be used for
	ExtendedKeyUsages []string `json:"extended_key_usages,omitempty"`
	// type of the private key of this TLS certificate. One of rsa, ecdsa, or ed25519.
	PrivateKeyType string `json:"private_key_type,omitempty"`
	// issuer common name from the leaf of this TLS certificate
	IssuerCommonName string `json:"issuer_common_name,omitempty"`
	// serial number of the leaf of this TLS certificate
	SerialNumber string `json:"serial_number,omitempty"`
	// subject organization from the leaf of this TLS certificate
	SubjectOrganization string `json:"subject_organization,omitempty"`
	// subject organizational unit from the leaf of this TLS certificate
	SubjectOrganizationalUnit string `json:"subject_organizational_unit,omitempty"`
	// subject locality from the leaf of this TLS certificate
	SubjectLocality string `json:"subject_locality,omitempty"`
	// subject province from the leaf of this TLS certificate
	SubjectProvince string `json:"subject_province,omitempty"`
	// subject country from the leaf of this TLS certificate
	SubjectCountry string `json:"subject_country,omitempty"`
}

type TLSCertificateCreate

type TLSCertificateCreate struct {
	// human-readable description of this TLS certificate. optional, max 255 bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this TLS certificate. optional,
	// max 4096 bytes.
	Metadata string `json:"metadata,omitempty"`
	// chain of PEM-encoded certificates, leaf first. See Certificate Bundles
	// (https://ngrok.com/docs/cloud-edge/endpoints#certificate-chains).
	CertificatePEM string `json:"certificate_pem,omitempty"`
	// private key for the TLS certificate, PEM-encoded. See Private Keys
	// (https://ngrok.com/docs/cloud-edge/endpoints#private-keys).
	PrivateKeyPEM string `json:"private_key_pem,omitempty"`
}

type TLSCertificateList

type TLSCertificateList struct {
	// the list of all TLS certificates on this account
	TLSCertificates []TLSCertificate `json:"tls_certificates,omitempty"`
	// URI of the TLS certificates list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type TLSCertificateSANs

type TLSCertificateSANs struct {
	// set of additional domains (including wildcards) this TLS certificate is valid
	// for
	DNSNames []string `json:"dns_names,omitempty"`
	// set of IP addresses this TLS certificate is also valid for
	IPs []string `json:"ips,omitempty"`
}

type TLSCertificateUpdate

type TLSCertificateUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this TLS certificate. optional, max 255 bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this TLS certificate. optional,
	// max 4096 bytes.
	Metadata *string `json:"metadata,omitempty"`
}

type TLSEdge added in v0.1.1

type TLSEdge struct {
	// unique identifier of this edge
	ID string `json:"id,omitempty"`
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge. Optional, max 4096
	// bytes.
	Metadata string `json:"metadata,omitempty"`
	// timestamp when the edge configuration was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// URI of the edge API resource
	URI string `json:"uri,omitempty"`
	// hostports served by this edge
	Hostports *[]string `json:"hostports,omitempty"`
	// edge modules
	Backend        *EndpointBackend        `json:"backend,omitempty"`
	IpRestriction  *EndpointIPPolicy       `json:"ip_restriction,omitempty"`
	MutualTls      *EndpointMutualTLS      `json:"mutual_tls,omitempty"`
	TlsTermination *EndpointTLSTermination `json:"tls_termination,omitempty"`
	// the traffic policy associated with this edge or null
	Policy *EndpointPolicy `json:"policy,omitempty"`
	// the traffic policy associated with this edge or null
	TrafficPolicy *EndpointTrafficPolicy `json:"traffic_policy,omitempty"`
}

type TLSEdgeCreate added in v0.1.1

type TLSEdgeCreate struct {
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge. Optional, max 4096
	// bytes.
	Metadata string `json:"metadata,omitempty"`
	// hostports served by this edge
	Hostports *[]string `json:"hostports,omitempty"`
	// edge modules
	Backend        *EndpointBackendMutate   `json:"backend,omitempty"`
	IPRestriction  *EndpointIPPolicyMutate  `json:"ip_restriction,omitempty"`
	MutualTLS      *EndpointMutualTLSMutate `json:"mutual_tls,omitempty"`
	TLSTermination *EndpointTLSTermination  `json:"tls_termination,omitempty"`
	// the traffic policy associated with this edge or null
	Policy *EndpointPolicy `json:"policy,omitempty"`
	// the traffic policy associated with this edge or null
	TrafficPolicy *EndpointTrafficPolicy `json:"traffic_policy,omitempty"`
}

type TLSEdgeList added in v0.1.3

type TLSEdgeList struct {
	// the list of all TLS Edges on this account
	TLSEdges []TLSEdge `json:"tls_edges,omitempty"`
	// URI of the TLS Edge list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type TLSEdgeUpdate added in v0.1.1

type TLSEdgeUpdate struct {
	// unique identifier of this edge
	ID string `json:"id,omitempty"`
	// human-readable description of what this edge will be used for; optional, max 255
	// bytes.
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this edge. Optional, max 4096
	// bytes.
	Metadata *string `json:"metadata,omitempty"`
	// hostports served by this edge
	Hostports *[]string `json:"hostports,omitempty"`
	// edge modules
	Backend        *EndpointBackendMutate   `json:"backend,omitempty"`
	IPRestriction  *EndpointIPPolicyMutate  `json:"ip_restriction,omitempty"`
	MutualTLS      *EndpointMutualTLSMutate `json:"mutual_tls,omitempty"`
	TLSTermination *EndpointTLSTermination  `json:"tls_termination,omitempty"`
	// the traffic policy associated with this edge or null
	Policy *EndpointPolicy `json:"policy,omitempty"`
	// the traffic policy associated with this edge or null
	TrafficPolicy *EndpointTrafficPolicy `json:"traffic_policy,omitempty"`
}

type Tunnel

type Tunnel struct {
	// unique tunnel resource identifier
	ID string `json:"id,omitempty"`
	// URL of the ephemeral tunnel's public endpoint
	PublicURL string `json:"public_url,omitempty"`
	// timestamp when the tunnel was initiated in RFC 3339 format
	StartedAt string `json:"started_at,omitempty"`
	// user-supplied metadata for the tunnel defined in the ngrok configuration file.
	// See the tunnel metadata configuration option
	// (https://ngrok.com/docs/secure-tunnels/ngrok-agent/reference/config#common-tunnel-configuration-properties)
	// In API version 0, this value was instead pulled from the top-level metadata
	// configuration option
	// (https://ngrok.com/docs/secure-tunnels/ngrok-agent/reference/config#metadata).
	Metadata string `json:"metadata,omitempty"`
	// tunnel protocol for ephemeral tunnels. one of http, https, tcp or tls
	Proto string `json:"proto,omitempty"`
	// identifier of tune region where the tunnel is running
	Region string `json:"region,omitempty"`
	// reference object pointing to the tunnel session on which this tunnel was started
	TunnelSession Ref `json:"tunnel_session,omitempty"`
	// the ephemeral endpoint this tunnel is associated with, if this is an
	// agent-initiated tunnel
	Endpoint *Ref `json:"endpoint,omitempty"`
	// the labels the tunnel group backends will match against, if this is a backend
	// tunnel
	Labels *map[string]string `json:"labels,omitempty"`
	// tunnel group backends served by this backend tunnel
	Backends *[]Ref `json:"backends,omitempty"`
	// upstream address the ngrok agent forwards traffic over this tunnel to. this may
	// be expressed as a URL or a network address.
	ForwardsTo string `json:"forwards_to,omitempty"`
}

type TunnelGroupBackend

type TunnelGroupBackend struct {
	// unique identifier for this TunnelGroup backend
	ID string `json:"id,omitempty"`
	// URI of the TunnelGroupBackend API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the backend was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this backend. Optional
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata string `json:"metadata,omitempty"`
	// labels to watch for tunnels on, e.g. app->foo, dc->bar
	Labels map[string]string `json:"labels,omitempty"`
	// tunnels matching this backend
	Tunnels []Ref `json:"tunnels,omitempty"`
}

type TunnelGroupBackendCreate

type TunnelGroupBackendCreate struct {
	// human-readable description of this backend. Optional
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata string `json:"metadata,omitempty"`
	// labels to watch for tunnels on, e.g. app->foo, dc->bar
	Labels map[string]string `json:"labels,omitempty"`
}

type TunnelGroupBackendList

type TunnelGroupBackendList struct {
	// the list of all TunnelGroup backends on this account
	Backends []TunnelGroupBackend `json:"backends,omitempty"`
	// URI of the TunnelGroup backends list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type TunnelGroupBackendUpdate

type TunnelGroupBackendUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this backend. Optional
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata *string `json:"metadata,omitempty"`
	// labels to watch for tunnels on, e.g. app->foo, dc->bar
	Labels map[string]string `json:"labels,omitempty"`
}

type TunnelList

type TunnelList struct {
	// the list of all online tunnels on this account
	Tunnels []Tunnel `json:"tunnels,omitempty"`
	// URI of the tunnels list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type TunnelSession

type TunnelSession struct {
	// version of the ngrok agent that started this ngrok tunnel session
	AgentVersion string `json:"agent_version,omitempty"`
	// reference to the tunnel credential or ssh credential used by the ngrok agent to
	// start this tunnel session
	Credential Ref `json:"credential,omitempty"`
	// unique tunnel session resource identifier
	ID string `json:"id,omitempty"`
	// source ip address of the tunnel session
	IP string `json:"ip,omitempty"`
	// arbitrary user-defined data specified in the metadata property in the ngrok
	// configuration file. See the metadata configuration option
	Metadata string `json:"metadata,omitempty"`
	// operating system of the host the ngrok agent is running on
	OS string `json:"os,omitempty"`
	// the ngrok region identifier in which this tunnel session was started
	Region string `json:"region,omitempty"`
	// time when the tunnel session first connected to the ngrok servers
	StartedAt string `json:"started_at,omitempty"`
	// the transport protocol used to start the tunnel session. Either ngrok/v2 or ssh
	Transport string `json:"transport,omitempty"`
	// URI to the API resource of the tunnel session
	URI string `json:"uri,omitempty"`
}

type TunnelSessionList

type TunnelSessionList struct {
	// list of all tunnel sessions on this account
	TunnelSessions []TunnelSession `json:"tunnel_sessions,omitempty"`
	// URI to the API resource of the tunnel session list
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type TunnelSessionProduct added in v0.1.5

type TunnelSessionProduct struct {
	// The product name
	Name string `json:"name,omitempty"`
	// The product version
	Version string `json:"version,omitempty"`
	// An optional comment
	Comment string `json:"comment,omitempty"`
}

A product entry in a tunnel session User-Agent

type TunnelSessionUserAgent added in v0.1.5

type TunnelSessionUserAgent struct {
	// The list of products making up the User-Agent
	Products []TunnelSessionProduct `json:"products,omitempty"`
}

The User-Agent for a tunnel session

type TunnelSessionsUpdate

type TunnelSessionsUpdate struct {
	ID string `json:"id,omitempty"`
	// request that the ngrok agent update to this specific version instead of the
	// latest available version
	Version string `json:"version,omitempty"`
}

type UserAgent added in v0.1.5

type UserAgent struct {
	// raw User-Agent request header
	Raw string `json:"raw,omitempty"`
	// browser name (e.g. Chrome)
	BrowserName string `json:"browser_name,omitempty"`
	// browser version (e.g. 102)
	BrowserVersion string `json:"browser_version,omitempty"`
	// type of device (e.g. Desktop)
	DeviceType string `json:"device_type,omitempty"`
	// operating system name (e.g. MacOS)
	OSName string `json:"os_name,omitempty"`
	// operating system version (e.g. 10.15.7)
	OSVersion string `json:"os_version,omitempty"`
}

type WeightedBackend

type WeightedBackend struct {
	// unique identifier for this Weighted backend
	ID string `json:"id,omitempty"`
	// URI of the WeightedBackend API resource
	URI string `json:"uri,omitempty"`
	// timestamp when the backend was created, RFC 3339 format
	CreatedAt string `json:"created_at,omitempty"`
	// human-readable description of this backend. Optional
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata string `json:"metadata,omitempty"`
	// the ids of the child backends to their weights [0-10000]
	Backends map[string]int64 `json:"backends,omitempty"`
}

type WeightedBackendCreate

type WeightedBackendCreate struct {
	// human-readable description of this backend. Optional
	Description string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata string `json:"metadata,omitempty"`
	// the ids of the child backends to their weights [0-10000]
	Backends map[string]int64 `json:"backends,omitempty"`
}

type WeightedBackendList

type WeightedBackendList struct {
	// the list of all Weighted backends on this account
	Backends []WeightedBackend `json:"backends,omitempty"`
	// URI of the Weighted backends list API resource
	URI string `json:"uri,omitempty"`
	// URI of the next page, or null if there is no next page
	NextPageURI *string `json:"next_page_uri,omitempty"`
}

type WeightedBackendUpdate

type WeightedBackendUpdate struct {
	ID string `json:"id,omitempty"`
	// human-readable description of this backend. Optional
	Description *string `json:"description,omitempty"`
	// arbitrary user-defined machine-readable data of this backend. Optional
	Metadata *string `json:"metadata,omitempty"`
	// the ids of the child backends to their weights [0-10000]
	Backends map[string]int64 `json:"backends,omitempty"`
}

Jump to

Keyboard shortcuts

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