magic_transit

package
v2.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const AuditLogActorTypeAdmin = shared.AuditLogActorTypeAdmin

This is an alias to an internal value.

View Source
const AuditLogActorTypeCloudflare = shared.AuditLogActorTypeCloudflare

This is an alias to an internal value.

View Source
const AuditLogActorTypeUser = shared.AuditLogActorTypeUser

This is an alias to an internal value.

View Source
const CloudflareTunnelTunTypeCNI = shared.CloudflareTunnelTunTypeCNI

This is an alias to an internal value.

View Source
const CloudflareTunnelTunTypeCfdTunnel = shared.CloudflareTunnelTunTypeCfdTunnel

This is an alias to an internal value.

View Source
const CloudflareTunnelTunTypeGRE = shared.CloudflareTunnelTunTypeGRE

This is an alias to an internal value.

View Source
const CloudflareTunnelTunTypeIPSec = shared.CloudflareTunnelTunTypeIPSec

This is an alias to an internal value.

View Source
const CloudflareTunnelTunTypeWARPConnector = shared.CloudflareTunnelTunTypeWARPConnector

This is an alias to an internal value.

Variables

This section is empty.

Functions

This section is empty.

Types

type ACL

type ACL struct {
	// Identifier
	ID string `json:"id"`
	// Description for the ACL.
	Description string `json:"description"`
	// The desired forwarding action for this ACL policy. If set to "false", the policy
	// will forward traffic to Cloudflare. If set to "true", the policy will forward
	// traffic locally on the Magic WAN Connector. If not included in request, will
	// default to false.
	ForwardLocally bool             `json:"forward_locally"`
	LAN1           ACLConfiguration `json:"lan_1"`
	LAN2           ACLConfiguration `json:"lan_2"`
	// The name of the ACL.
	Name      string            `json:"name"`
	Protocols []AllowedProtocol `json:"protocols"`
	JSON      aclJSON           `json:"-"`
}

Bidirectional ACL policy for network traffic within a site.

func (*ACL) UnmarshalJSON

func (r *ACL) UnmarshalJSON(data []byte) (err error)

type ACLConfiguration

type ACLConfiguration struct {
	// The identifier for the LAN you want to create an ACL policy with.
	LANID string `json:"lan_id,required"`
	// The name of the LAN based on the provided lan_id.
	LANName string `json:"lan_name"`
	// Array of ports on the provided LAN that will be included in the ACL. If no ports
	// are provided, communication on any port on this LAN is allowed.
	Ports []int64 `json:"ports"`
	// Array of subnet IPs within the LAN that will be included in the ACL. If no
	// subnets are provided, communication on any subnets on this LAN are allowed.
	Subnets []SubnetUnion        `json:"subnets"`
	JSON    aclConfigurationJSON `json:"-"`
}

func (*ACLConfiguration) UnmarshalJSON

func (r *ACLConfiguration) UnmarshalJSON(data []byte) (err error)

type ACLConfigurationParam

type ACLConfigurationParam struct {
	// The identifier for the LAN you want to create an ACL policy with.
	LANID param.Field[string] `json:"lan_id,required"`
	// The name of the LAN based on the provided lan_id.
	LANName param.Field[string] `json:"lan_name"`
	// Array of ports on the provided LAN that will be included in the ACL. If no ports
	// are provided, communication on any port on this LAN is allowed.
	Ports param.Field[[]int64] `json:"ports"`
	// Array of subnet IPs within the LAN that will be included in the ACL. If no
	// subnets are provided, communication on any subnets on this LAN are allowed.
	Subnets param.Field[[]SubnetUnionParam] `json:"subnets"`
}

func (ACLConfigurationParam) MarshalJSON

func (r ACLConfigurationParam) MarshalJSON() (data []byte, err error)

type ACLParam

type ACLParam struct {
	// Description for the ACL.
	Description param.Field[string] `json:"description"`
	// The desired forwarding action for this ACL policy. If set to "false", the policy
	// will forward traffic to Cloudflare. If set to "true", the policy will forward
	// traffic locally on the Magic WAN Connector. If not included in request, will
	// default to false.
	ForwardLocally param.Field[bool]                  `json:"forward_locally"`
	LAN1           param.Field[ACLConfigurationParam] `json:"lan_1"`
	LAN2           param.Field[ACLConfigurationParam] `json:"lan_2"`
	// The name of the ACL.
	Name      param.Field[string]            `json:"name"`
	Protocols param.Field[[]AllowedProtocol] `json:"protocols"`
}

Bidirectional ACL policy for network traffic within a site.

func (ACLParam) MarshalJSON

func (r ACLParam) MarshalJSON() (data []byte, err error)

type ASN added in v2.1.0

type ASN = shared.ASN

This is an alias to an internal type.

type ASNParam added in v2.1.0

type ASNParam = shared.ASNParam

This is an alias to an internal type.

type AllowedProtocol

type AllowedProtocol string

Array of allowed communication protocols between configured LANs. If no protocols are provided, all protocols are allowed.

const (
	AllowedProtocolTCP  AllowedProtocol = "tcp"
	AllowedProtocolUdp  AllowedProtocol = "udp"
	AllowedProtocolIcmp AllowedProtocol = "icmp"
)

func (AllowedProtocol) IsKnown

func (r AllowedProtocol) IsKnown() bool

type AuditLog

type AuditLog = shared.AuditLog

This is an alias to an internal type.

type AuditLogAction

type AuditLogAction = shared.AuditLogAction

This is an alias to an internal type.

type AuditLogActor

type AuditLogActor = shared.AuditLogActor

This is an alias to an internal type.

type AuditLogActorType

type AuditLogActorType = shared.AuditLogActorType

The type of actor, whether a User, Cloudflare Admin, or an Automated System.

This is an alias to an internal type.

type AuditLogOwner

type AuditLogOwner = shared.AuditLogOwner

This is an alias to an internal type.

type AuditLogResource

type AuditLogResource = shared.AuditLogResource

This is an alias to an internal type.

type CfInterconnectGetParams

type CfInterconnectGetParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type CfInterconnectGetResponse

type CfInterconnectGetResponse struct {
	Interconnect interface{}                   `json:"interconnect"`
	JSON         cfInterconnectGetResponseJSON `json:"-"`
}

func (*CfInterconnectGetResponse) UnmarshalJSON

func (r *CfInterconnectGetResponse) UnmarshalJSON(data []byte) (err error)

type CfInterconnectGetResponseEnvelope

type CfInterconnectGetResponseEnvelope struct {
	Errors   []shared.ResponseInfo     `json:"errors,required"`
	Messages []shared.ResponseInfo     `json:"messages,required"`
	Result   CfInterconnectGetResponse `json:"result,required"`
	// Whether the API call was successful
	Success CfInterconnectGetResponseEnvelopeSuccess `json:"success,required"`
	JSON    cfInterconnectGetResponseEnvelopeJSON    `json:"-"`
}

func (*CfInterconnectGetResponseEnvelope) UnmarshalJSON

func (r *CfInterconnectGetResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type CfInterconnectGetResponseEnvelopeSuccess

type CfInterconnectGetResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	CfInterconnectGetResponseEnvelopeSuccessTrue CfInterconnectGetResponseEnvelopeSuccess = true
)

func (CfInterconnectGetResponseEnvelopeSuccess) IsKnown

type CfInterconnectListParams

type CfInterconnectListParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type CfInterconnectListResponse

type CfInterconnectListResponse struct {
	Interconnects []CfInterconnectListResponseInterconnect `json:"interconnects"`
	JSON          cfInterconnectListResponseJSON           `json:"-"`
}

func (*CfInterconnectListResponse) UnmarshalJSON

func (r *CfInterconnectListResponse) UnmarshalJSON(data []byte) (err error)

type CfInterconnectListResponseEnvelope

type CfInterconnectListResponseEnvelope struct {
	Errors   []shared.ResponseInfo      `json:"errors,required"`
	Messages []shared.ResponseInfo      `json:"messages,required"`
	Result   CfInterconnectListResponse `json:"result,required"`
	// Whether the API call was successful
	Success CfInterconnectListResponseEnvelopeSuccess `json:"success,required"`
	JSON    cfInterconnectListResponseEnvelopeJSON    `json:"-"`
}

func (*CfInterconnectListResponseEnvelope) UnmarshalJSON

func (r *CfInterconnectListResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type CfInterconnectListResponseEnvelopeSuccess

type CfInterconnectListResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	CfInterconnectListResponseEnvelopeSuccessTrue CfInterconnectListResponseEnvelopeSuccess = true
)

func (CfInterconnectListResponseEnvelopeSuccess) IsKnown

type CfInterconnectListResponseInterconnect

type CfInterconnectListResponseInterconnect struct {
	// Tunnel identifier tag.
	ID string `json:"id"`
	// The name of the interconnect. The name cannot share a name with other tunnels.
	ColoName string `json:"colo_name"`
	// The date and time the tunnel was created.
	CreatedOn time.Time `json:"created_on" format:"date-time"`
	// An optional description of the interconnect.
	Description string `json:"description"`
	// The configuration specific to GRE interconnects.
	GRE         CfInterconnectListResponseInterconnectsGRE         `json:"gre"`
	HealthCheck CfInterconnectListResponseInterconnectsHealthCheck `json:"health_check"`
	// A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side
	// of the tunnel. Select the subnet from the following private IP space:
	// 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.
	InterfaceAddress string `json:"interface_address"`
	// The date and time the tunnel was last modified.
	ModifiedOn time.Time `json:"modified_on" format:"date-time"`
	// The Maximum Transmission Unit (MTU) in bytes for the interconnect. The minimum
	// value is 576.
	Mtu int64 `json:"mtu"`
	// The name of the interconnect. The name cannot share a name with other tunnels.
	Name string                                     `json:"name"`
	JSON cfInterconnectListResponseInterconnectJSON `json:"-"`
}

func (*CfInterconnectListResponseInterconnect) UnmarshalJSON

func (r *CfInterconnectListResponseInterconnect) UnmarshalJSON(data []byte) (err error)

type CfInterconnectListResponseInterconnectsGRE

type CfInterconnectListResponseInterconnectsGRE struct {
	// The IP address assigned to the Cloudflare side of the GRE tunnel created as part
	// of the Interconnect.
	CloudflareEndpoint string                                         `json:"cloudflare_endpoint"`
	JSON               cfInterconnectListResponseInterconnectsGREJSON `json:"-"`
}

The configuration specific to GRE interconnects.

func (*CfInterconnectListResponseInterconnectsGRE) UnmarshalJSON

func (r *CfInterconnectListResponseInterconnectsGRE) UnmarshalJSON(data []byte) (err error)

type CfInterconnectListResponseInterconnectsHealthCheck

type CfInterconnectListResponseInterconnectsHealthCheck struct {
	// Determines whether to run healthchecks for a tunnel.
	Enabled bool `json:"enabled"`
	// How frequent the health check is run. The default value is `mid`.
	Rate HealthCheckRate `json:"rate"`
	// The destination address in a request type health check. After the healthcheck is
	// decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded
	// to this address. This field defaults to `customer_gre_endpoint address`.
	Target string `json:"target"`
	// The type of healthcheck to run, reply or request. The default value is `reply`.
	Type HealthCheckType                                        `json:"type"`
	JSON cfInterconnectListResponseInterconnectsHealthCheckJSON `json:"-"`
}

func (*CfInterconnectListResponseInterconnectsHealthCheck) UnmarshalJSON

func (r *CfInterconnectListResponseInterconnectsHealthCheck) UnmarshalJSON(data []byte) (err error)

type CfInterconnectService

type CfInterconnectService struct {
	Options []option.RequestOption
}

CfInterconnectService contains methods and other services that help with interacting with the cloudflare API. Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewCfInterconnectService method instead.

func NewCfInterconnectService

func NewCfInterconnectService(opts ...option.RequestOption) (r *CfInterconnectService)

NewCfInterconnectService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*CfInterconnectService) Get

Lists details for a specific interconnect.

func (*CfInterconnectService) List

Lists interconnects associated with an account.

func (*CfInterconnectService) Update

Updates a specific interconnect associated with an account. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.

type CfInterconnectUpdateParams

type CfInterconnectUpdateParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	// An optional description of the interconnect.
	Description param.Field[string] `json:"description"`
	// The configuration specific to GRE interconnects.
	GRE         param.Field[CfInterconnectUpdateParamsGRE]         `json:"gre"`
	HealthCheck param.Field[CfInterconnectUpdateParamsHealthCheck] `json:"health_check"`
	// A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side
	// of the tunnel. Select the subnet from the following private IP space:
	// 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.
	InterfaceAddress param.Field[string] `json:"interface_address"`
	// The Maximum Transmission Unit (MTU) in bytes for the interconnect. The minimum
	// value is 576.
	Mtu param.Field[int64] `json:"mtu"`
}

func (CfInterconnectUpdateParams) MarshalJSON

func (r CfInterconnectUpdateParams) MarshalJSON() (data []byte, err error)

type CfInterconnectUpdateParamsGRE

type CfInterconnectUpdateParamsGRE struct {
	// The IP address assigned to the Cloudflare side of the GRE tunnel created as part
	// of the Interconnect.
	CloudflareEndpoint param.Field[string] `json:"cloudflare_endpoint"`
}

The configuration specific to GRE interconnects.

func (CfInterconnectUpdateParamsGRE) MarshalJSON

func (r CfInterconnectUpdateParamsGRE) MarshalJSON() (data []byte, err error)

type CfInterconnectUpdateParamsHealthCheck

type CfInterconnectUpdateParamsHealthCheck struct {
	// Determines whether to run healthchecks for a tunnel.
	Enabled param.Field[bool] `json:"enabled"`
	// How frequent the health check is run. The default value is `mid`.
	Rate param.Field[HealthCheckRate] `json:"rate"`
	// The destination address in a request type health check. After the healthcheck is
	// decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded
	// to this address. This field defaults to `customer_gre_endpoint address`.
	Target param.Field[string] `json:"target"`
	// The type of healthcheck to run, reply or request. The default value is `reply`.
	Type param.Field[HealthCheckType] `json:"type"`
}

func (CfInterconnectUpdateParamsHealthCheck) MarshalJSON

func (r CfInterconnectUpdateParamsHealthCheck) MarshalJSON() (data []byte, err error)

type CfInterconnectUpdateResponse

type CfInterconnectUpdateResponse struct {
	Modified             bool                             `json:"modified"`
	ModifiedInterconnect interface{}                      `json:"modified_interconnect"`
	JSON                 cfInterconnectUpdateResponseJSON `json:"-"`
}

func (*CfInterconnectUpdateResponse) UnmarshalJSON

func (r *CfInterconnectUpdateResponse) UnmarshalJSON(data []byte) (err error)

type CfInterconnectUpdateResponseEnvelope

type CfInterconnectUpdateResponseEnvelope struct {
	Errors   []shared.ResponseInfo        `json:"errors,required"`
	Messages []shared.ResponseInfo        `json:"messages,required"`
	Result   CfInterconnectUpdateResponse `json:"result,required"`
	// Whether the API call was successful
	Success CfInterconnectUpdateResponseEnvelopeSuccess `json:"success,required"`
	JSON    cfInterconnectUpdateResponseEnvelopeJSON    `json:"-"`
}

func (*CfInterconnectUpdateResponseEnvelope) UnmarshalJSON

func (r *CfInterconnectUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type CfInterconnectUpdateResponseEnvelopeSuccess

type CfInterconnectUpdateResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	CfInterconnectUpdateResponseEnvelopeSuccessTrue CfInterconnectUpdateResponseEnvelopeSuccess = true
)

func (CfInterconnectUpdateResponseEnvelopeSuccess) IsKnown

type CloudflareTunnel

type CloudflareTunnel = shared.CloudflareTunnel

A Cloudflare Tunnel that connects your origin to Cloudflare's edge.

This is an alias to an internal type.

type CloudflareTunnelConnection

type CloudflareTunnelConnection = shared.CloudflareTunnelConnection

This is an alias to an internal type.

type CloudflareTunnelTunType

type CloudflareTunnelTunType = shared.CloudflareTunnelTunType

The type of tunnel.

This is an alias to an internal type.

type ColoName

type ColoName []string

type ColoNameParam

type ColoNameParam []string

type ColoRegion

type ColoRegion []string

type ColoRegionParam

type ColoRegionParam []string

type DHCPRelay

type DHCPRelay struct {
	// List of DHCP server IPs.
	ServerAddresses []string      `json:"server_addresses"`
	JSON            dhcpRelayJSON `json:"-"`
}

func (*DHCPRelay) UnmarshalJSON

func (r *DHCPRelay) UnmarshalJSON(data []byte) (err error)

type DHCPRelayParam

type DHCPRelayParam struct {
	// List of DHCP server IPs.
	ServerAddresses param.Field[[]string] `json:"server_addresses"`
}

func (DHCPRelayParam) MarshalJSON

func (r DHCPRelayParam) MarshalJSON() (data []byte, err error)

type DHCPServer

type DHCPServer struct {
	// A valid IPv4 address.
	DHCPPoolEnd string `json:"dhcp_pool_end"`
	// A valid IPv4 address.
	DHCPPoolStart string `json:"dhcp_pool_start"`
	// A valid IPv4 address.
	DNSServer string `json:"dns_server"`
	// Mapping of MAC addresses to IP addresses
	Reservations map[string]string `json:"reservations"`
	JSON         dhcpServerJSON    `json:"-"`
}

func (*DHCPServer) UnmarshalJSON

func (r *DHCPServer) UnmarshalJSON(data []byte) (err error)

type DHCPServerParam

type DHCPServerParam struct {
	// A valid IPv4 address.
	DHCPPoolEnd param.Field[string] `json:"dhcp_pool_end"`
	// A valid IPv4 address.
	DHCPPoolStart param.Field[string] `json:"dhcp_pool_start"`
	// A valid IPv4 address.
	DNSServer param.Field[string] `json:"dns_server"`
	// Mapping of MAC addresses to IP addresses
	Reservations param.Field[map[string]string] `json:"reservations"`
}

func (DHCPServerParam) MarshalJSON

func (r DHCPServerParam) MarshalJSON() (data []byte, err error)

type Error

type Error = apierror.Error

type ErrorData

type ErrorData = shared.ErrorData

This is an alias to an internal type.

type GRETunnelDeleteParams

type GRETunnelDeleteParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Body      interface{}         `json:"body,required"`
}

func (GRETunnelDeleteParams) MarshalJSON

func (r GRETunnelDeleteParams) MarshalJSON() (data []byte, err error)

type GRETunnelDeleteResponse

type GRETunnelDeleteResponse struct {
	Deleted          bool                        `json:"deleted"`
	DeletedGRETunnel interface{}                 `json:"deleted_gre_tunnel"`
	JSON             greTunnelDeleteResponseJSON `json:"-"`
}

func (*GRETunnelDeleteResponse) UnmarshalJSON

func (r *GRETunnelDeleteResponse) UnmarshalJSON(data []byte) (err error)

type GRETunnelDeleteResponseEnvelope

type GRETunnelDeleteResponseEnvelope struct {
	Errors   []shared.ResponseInfo   `json:"errors,required"`
	Messages []shared.ResponseInfo   `json:"messages,required"`
	Result   GRETunnelDeleteResponse `json:"result,required"`
	// Whether the API call was successful
	Success GRETunnelDeleteResponseEnvelopeSuccess `json:"success,required"`
	JSON    greTunnelDeleteResponseEnvelopeJSON    `json:"-"`
}

func (*GRETunnelDeleteResponseEnvelope) UnmarshalJSON

func (r *GRETunnelDeleteResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type GRETunnelDeleteResponseEnvelopeSuccess

type GRETunnelDeleteResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	GRETunnelDeleteResponseEnvelopeSuccessTrue GRETunnelDeleteResponseEnvelopeSuccess = true
)

func (GRETunnelDeleteResponseEnvelopeSuccess) IsKnown

type GRETunnelGetParams

type GRETunnelGetParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type GRETunnelGetResponse

type GRETunnelGetResponse struct {
	GRETunnel interface{}              `json:"gre_tunnel"`
	JSON      greTunnelGetResponseJSON `json:"-"`
}

func (*GRETunnelGetResponse) UnmarshalJSON

func (r *GRETunnelGetResponse) UnmarshalJSON(data []byte) (err error)

type GRETunnelGetResponseEnvelope

type GRETunnelGetResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   GRETunnelGetResponse  `json:"result,required"`
	// Whether the API call was successful
	Success GRETunnelGetResponseEnvelopeSuccess `json:"success,required"`
	JSON    greTunnelGetResponseEnvelopeJSON    `json:"-"`
}

func (*GRETunnelGetResponseEnvelope) UnmarshalJSON

func (r *GRETunnelGetResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type GRETunnelGetResponseEnvelopeSuccess

type GRETunnelGetResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	GRETunnelGetResponseEnvelopeSuccessTrue GRETunnelGetResponseEnvelopeSuccess = true
)

func (GRETunnelGetResponseEnvelopeSuccess) IsKnown

type GRETunnelListParams

type GRETunnelListParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type GRETunnelListResponse

type GRETunnelListResponse struct {
	GRETunnels []GRETunnelListResponseGRETunnel `json:"gre_tunnels"`
	JSON       greTunnelListResponseJSON        `json:"-"`
}

func (*GRETunnelListResponse) UnmarshalJSON

func (r *GRETunnelListResponse) UnmarshalJSON(data []byte) (err error)

type GRETunnelListResponseEnvelope

type GRETunnelListResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   GRETunnelListResponse `json:"result,required"`
	// Whether the API call was successful
	Success GRETunnelListResponseEnvelopeSuccess `json:"success,required"`
	JSON    greTunnelListResponseEnvelopeJSON    `json:"-"`
}

func (*GRETunnelListResponseEnvelope) UnmarshalJSON

func (r *GRETunnelListResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type GRETunnelListResponseEnvelopeSuccess

type GRETunnelListResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	GRETunnelListResponseEnvelopeSuccessTrue GRETunnelListResponseEnvelopeSuccess = true
)

func (GRETunnelListResponseEnvelopeSuccess) IsKnown

type GRETunnelListResponseGRETunnel

type GRETunnelListResponseGRETunnel struct {
	// The IP address assigned to the Cloudflare side of the GRE tunnel.
	CloudflareGREEndpoint string `json:"cloudflare_gre_endpoint,required"`
	// The IP address assigned to the customer side of the GRE tunnel.
	CustomerGREEndpoint string `json:"customer_gre_endpoint,required"`
	// A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side
	// of the tunnel. Select the subnet from the following private IP space:
	// 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.
	InterfaceAddress string `json:"interface_address,required"`
	// The name of the tunnel. The name cannot contain spaces or special characters,
	// must be 15 characters or less, and cannot share a name with another GRE tunnel.
	Name string `json:"name,required"`
	// Tunnel identifier tag.
	ID string `json:"id"`
	// The date and time the tunnel was created.
	CreatedOn time.Time `json:"created_on" format:"date-time"`
	// An optional description of the GRE tunnel.
	Description string      `json:"description"`
	HealthCheck HealthCheck `json:"health_check"`
	// The date and time the tunnel was last modified.
	ModifiedOn time.Time `json:"modified_on" format:"date-time"`
	// Maximum Transmission Unit (MTU) in bytes for the GRE tunnel. The minimum value
	// is 576.
	Mtu int64 `json:"mtu"`
	// Time To Live (TTL) in number of hops of the GRE tunnel.
	TTL  int64                              `json:"ttl"`
	JSON greTunnelListResponseGRETunnelJSON `json:"-"`
}

func (*GRETunnelListResponseGRETunnel) UnmarshalJSON

func (r *GRETunnelListResponseGRETunnel) UnmarshalJSON(data []byte) (err error)

type GRETunnelNewParams

type GRETunnelNewParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Body      interface{}         `json:"body,required"`
}

func (GRETunnelNewParams) MarshalJSON

func (r GRETunnelNewParams) MarshalJSON() (data []byte, err error)

type GRETunnelNewResponse

type GRETunnelNewResponse struct {
	GRETunnels []GRETunnelNewResponseGRETunnel `json:"gre_tunnels"`
	JSON       greTunnelNewResponseJSON        `json:"-"`
}

func (*GRETunnelNewResponse) UnmarshalJSON

func (r *GRETunnelNewResponse) UnmarshalJSON(data []byte) (err error)

type GRETunnelNewResponseEnvelope

type GRETunnelNewResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   GRETunnelNewResponse  `json:"result,required"`
	// Whether the API call was successful
	Success GRETunnelNewResponseEnvelopeSuccess `json:"success,required"`
	JSON    greTunnelNewResponseEnvelopeJSON    `json:"-"`
}

func (*GRETunnelNewResponseEnvelope) UnmarshalJSON

func (r *GRETunnelNewResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type GRETunnelNewResponseEnvelopeSuccess

type GRETunnelNewResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	GRETunnelNewResponseEnvelopeSuccessTrue GRETunnelNewResponseEnvelopeSuccess = true
)

func (GRETunnelNewResponseEnvelopeSuccess) IsKnown

type GRETunnelNewResponseGRETunnel

type GRETunnelNewResponseGRETunnel struct {
	// The IP address assigned to the Cloudflare side of the GRE tunnel.
	CloudflareGREEndpoint string `json:"cloudflare_gre_endpoint,required"`
	// The IP address assigned to the customer side of the GRE tunnel.
	CustomerGREEndpoint string `json:"customer_gre_endpoint,required"`
	// A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side
	// of the tunnel. Select the subnet from the following private IP space:
	// 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.
	InterfaceAddress string `json:"interface_address,required"`
	// The name of the tunnel. The name cannot contain spaces or special characters,
	// must be 15 characters or less, and cannot share a name with another GRE tunnel.
	Name string `json:"name,required"`
	// Tunnel identifier tag.
	ID string `json:"id"`
	// The date and time the tunnel was created.
	CreatedOn time.Time `json:"created_on" format:"date-time"`
	// An optional description of the GRE tunnel.
	Description string      `json:"description"`
	HealthCheck HealthCheck `json:"health_check"`
	// The date and time the tunnel was last modified.
	ModifiedOn time.Time `json:"modified_on" format:"date-time"`
	// Maximum Transmission Unit (MTU) in bytes for the GRE tunnel. The minimum value
	// is 576.
	Mtu int64 `json:"mtu"`
	// Time To Live (TTL) in number of hops of the GRE tunnel.
	TTL  int64                             `json:"ttl"`
	JSON greTunnelNewResponseGRETunnelJSON `json:"-"`
}

func (*GRETunnelNewResponseGRETunnel) UnmarshalJSON

func (r *GRETunnelNewResponseGRETunnel) UnmarshalJSON(data []byte) (err error)

type GRETunnelService

type GRETunnelService struct {
	Options []option.RequestOption
}

GRETunnelService contains methods and other services that help with interacting with the cloudflare API. Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewGRETunnelService method instead.

func NewGRETunnelService

func NewGRETunnelService(opts ...option.RequestOption) (r *GRETunnelService)

NewGRETunnelService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*GRETunnelService) Delete

func (r *GRETunnelService) Delete(ctx context.Context, tunnelIdentifier string, params GRETunnelDeleteParams, opts ...option.RequestOption) (res *GRETunnelDeleteResponse, err error)

Disables and removes a specific static GRE tunnel. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.

func (*GRETunnelService) Get

func (r *GRETunnelService) Get(ctx context.Context, tunnelIdentifier string, query GRETunnelGetParams, opts ...option.RequestOption) (res *GRETunnelGetResponse, err error)

Lists informtion for a specific GRE tunnel.

func (*GRETunnelService) List

Lists GRE tunnels associated with an account.

func (*GRETunnelService) New

Creates new GRE tunnels. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.

func (*GRETunnelService) Update

func (r *GRETunnelService) Update(ctx context.Context, tunnelIdentifier string, params GRETunnelUpdateParams, opts ...option.RequestOption) (res *GRETunnelUpdateResponse, err error)

Updates a specific GRE tunnel. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.

type GRETunnelUpdateParams

type GRETunnelUpdateParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	// The IP address assigned to the Cloudflare side of the GRE tunnel.
	CloudflareGREEndpoint param.Field[string] `json:"cloudflare_gre_endpoint,required"`
	// The IP address assigned to the customer side of the GRE tunnel.
	CustomerGREEndpoint param.Field[string] `json:"customer_gre_endpoint,required"`
	// A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side
	// of the tunnel. Select the subnet from the following private IP space:
	// 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.
	InterfaceAddress param.Field[string] `json:"interface_address,required"`
	// The name of the tunnel. The name cannot contain spaces or special characters,
	// must be 15 characters or less, and cannot share a name with another GRE tunnel.
	Name param.Field[string] `json:"name,required"`
	// An optional description of the GRE tunnel.
	Description param.Field[string]           `json:"description"`
	HealthCheck param.Field[HealthCheckParam] `json:"health_check"`
	// Maximum Transmission Unit (MTU) in bytes for the GRE tunnel. The minimum value
	// is 576.
	Mtu param.Field[int64] `json:"mtu"`
	// Time To Live (TTL) in number of hops of the GRE tunnel.
	TTL param.Field[int64] `json:"ttl"`
}

func (GRETunnelUpdateParams) MarshalJSON

func (r GRETunnelUpdateParams) MarshalJSON() (data []byte, err error)

type GRETunnelUpdateResponse

type GRETunnelUpdateResponse struct {
	Modified          bool                        `json:"modified"`
	ModifiedGRETunnel interface{}                 `json:"modified_gre_tunnel"`
	JSON              greTunnelUpdateResponseJSON `json:"-"`
}

func (*GRETunnelUpdateResponse) UnmarshalJSON

func (r *GRETunnelUpdateResponse) UnmarshalJSON(data []byte) (err error)

type GRETunnelUpdateResponseEnvelope

type GRETunnelUpdateResponseEnvelope struct {
	Errors   []shared.ResponseInfo   `json:"errors,required"`
	Messages []shared.ResponseInfo   `json:"messages,required"`
	Result   GRETunnelUpdateResponse `json:"result,required"`
	// Whether the API call was successful
	Success GRETunnelUpdateResponseEnvelopeSuccess `json:"success,required"`
	JSON    greTunnelUpdateResponseEnvelopeJSON    `json:"-"`
}

func (*GRETunnelUpdateResponseEnvelope) UnmarshalJSON

func (r *GRETunnelUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type GRETunnelUpdateResponseEnvelopeSuccess

type GRETunnelUpdateResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	GRETunnelUpdateResponseEnvelopeSuccessTrue GRETunnelUpdateResponseEnvelopeSuccess = true
)

func (GRETunnelUpdateResponseEnvelopeSuccess) IsKnown

type HealthCheck

type HealthCheck struct {
	// The direction of the flow of the healthcheck. Either unidirectional, where the
	// probe comes to you via the tunnel and the result comes back to Cloudflare via
	// the open Internet, or bidirectional where both the probe and result come and go
	// via the tunnel. Note in the case of bidirecitonal healthchecks, the target field
	// in health_check is ignored as the interface_address is used to send traffic into
	// the tunnel.
	Direction HealthCheckDirection `json:"direction"`
	// Determines whether to run healthchecks for a tunnel.
	Enabled bool `json:"enabled"`
	// How frequent the health check is run. The default value is `mid`.
	Rate HealthCheckRate `json:"rate"`
	// The destination address in a request type health check. After the healthcheck is
	// decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded
	// to this address. This field defaults to `customer_gre_endpoint address`. This
	// field is ignored for bidirectional healthchecks as the interface_address (not
	// assigned to the Cloudflare side of the tunnel) is used as the target.
	Target string `json:"target"`
	// The type of healthcheck to run, reply or request. The default value is `reply`.
	Type HealthCheckType `json:"type"`
	JSON healthCheckJSON `json:"-"`
}

func (*HealthCheck) UnmarshalJSON

func (r *HealthCheck) UnmarshalJSON(data []byte) (err error)

type HealthCheckDirection

type HealthCheckDirection string

The direction of the flow of the healthcheck. Either unidirectional, where the probe comes to you via the tunnel and the result comes back to Cloudflare via the open Internet, or bidirectional where both the probe and result come and go via the tunnel. Note in the case of bidirecitonal healthchecks, the target field in health_check is ignored as the interface_address is used to send traffic into the tunnel.

const (
	HealthCheckDirectionUnidirectional HealthCheckDirection = "unidirectional"
	HealthCheckDirectionBidirectional  HealthCheckDirection = "bidirectional"
)

func (HealthCheckDirection) IsKnown

func (r HealthCheckDirection) IsKnown() bool

type HealthCheckParam

type HealthCheckParam struct {
	// The direction of the flow of the healthcheck. Either unidirectional, where the
	// probe comes to you via the tunnel and the result comes back to Cloudflare via
	// the open Internet, or bidirectional where both the probe and result come and go
	// via the tunnel. Note in the case of bidirecitonal healthchecks, the target field
	// in health_check is ignored as the interface_address is used to send traffic into
	// the tunnel.
	Direction param.Field[HealthCheckDirection] `json:"direction"`
	// Determines whether to run healthchecks for a tunnel.
	Enabled param.Field[bool] `json:"enabled"`
	// How frequent the health check is run. The default value is `mid`.
	Rate param.Field[HealthCheckRate] `json:"rate"`
	// The destination address in a request type health check. After the healthcheck is
	// decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded
	// to this address. This field defaults to `customer_gre_endpoint address`. This
	// field is ignored for bidirectional healthchecks as the interface_address (not
	// assigned to the Cloudflare side of the tunnel) is used as the target.
	Target param.Field[string] `json:"target"`
	// The type of healthcheck to run, reply or request. The default value is `reply`.
	Type param.Field[HealthCheckType] `json:"type"`
}

func (HealthCheckParam) MarshalJSON

func (r HealthCheckParam) MarshalJSON() (data []byte, err error)

type HealthCheckRate

type HealthCheckRate string

How frequent the health check is run. The default value is `mid`.

const (
	HealthCheckRateLow  HealthCheckRate = "low"
	HealthCheckRateMid  HealthCheckRate = "mid"
	HealthCheckRateHigh HealthCheckRate = "high"
)

func (HealthCheckRate) IsKnown

func (r HealthCheckRate) IsKnown() bool

type HealthCheckType

type HealthCheckType string

The type of healthcheck to run, reply or request. The default value is `reply`.

const (
	HealthCheckTypeReply   HealthCheckType = "reply"
	HealthCheckTypeRequest HealthCheckType = "request"
)

func (HealthCheckType) IsKnown

func (r HealthCheckType) IsKnown() bool

type IPSECTunnelDeleteParams

type IPSECTunnelDeleteParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Body      interface{}         `json:"body,required"`
}

func (IPSECTunnelDeleteParams) MarshalJSON

func (r IPSECTunnelDeleteParams) MarshalJSON() (data []byte, err error)

type IPSECTunnelDeleteResponse

type IPSECTunnelDeleteResponse struct {
	Deleted            bool                          `json:"deleted"`
	DeletedIPSECTunnel interface{}                   `json:"deleted_ipsec_tunnel"`
	JSON               ipsecTunnelDeleteResponseJSON `json:"-"`
}

func (*IPSECTunnelDeleteResponse) UnmarshalJSON

func (r *IPSECTunnelDeleteResponse) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelDeleteResponseEnvelope

type IPSECTunnelDeleteResponseEnvelope struct {
	Errors   []shared.ResponseInfo     `json:"errors,required"`
	Messages []shared.ResponseInfo     `json:"messages,required"`
	Result   IPSECTunnelDeleteResponse `json:"result,required"`
	// Whether the API call was successful
	Success IPSECTunnelDeleteResponseEnvelopeSuccess `json:"success,required"`
	JSON    ipsecTunnelDeleteResponseEnvelopeJSON    `json:"-"`
}

func (*IPSECTunnelDeleteResponseEnvelope) UnmarshalJSON

func (r *IPSECTunnelDeleteResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelDeleteResponseEnvelopeSuccess

type IPSECTunnelDeleteResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	IPSECTunnelDeleteResponseEnvelopeSuccessTrue IPSECTunnelDeleteResponseEnvelopeSuccess = true
)

func (IPSECTunnelDeleteResponseEnvelopeSuccess) IsKnown

type IPSECTunnelGetParams

type IPSECTunnelGetParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type IPSECTunnelGetResponse

type IPSECTunnelGetResponse struct {
	IPSECTunnel interface{}                `json:"ipsec_tunnel"`
	JSON        ipsecTunnelGetResponseJSON `json:"-"`
}

func (*IPSECTunnelGetResponse) UnmarshalJSON

func (r *IPSECTunnelGetResponse) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelGetResponseEnvelope

type IPSECTunnelGetResponseEnvelope struct {
	Errors   []shared.ResponseInfo  `json:"errors,required"`
	Messages []shared.ResponseInfo  `json:"messages,required"`
	Result   IPSECTunnelGetResponse `json:"result,required"`
	// Whether the API call was successful
	Success IPSECTunnelGetResponseEnvelopeSuccess `json:"success,required"`
	JSON    ipsecTunnelGetResponseEnvelopeJSON    `json:"-"`
}

func (*IPSECTunnelGetResponseEnvelope) UnmarshalJSON

func (r *IPSECTunnelGetResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelGetResponseEnvelopeSuccess

type IPSECTunnelGetResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	IPSECTunnelGetResponseEnvelopeSuccessTrue IPSECTunnelGetResponseEnvelopeSuccess = true
)

func (IPSECTunnelGetResponseEnvelopeSuccess) IsKnown

type IPSECTunnelListParams

type IPSECTunnelListParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type IPSECTunnelListResponse

type IPSECTunnelListResponse struct {
	IPSECTunnels []IPSECTunnelListResponseIPSECTunnel `json:"ipsec_tunnels"`
	JSON         ipsecTunnelListResponseJSON          `json:"-"`
}

func (*IPSECTunnelListResponse) UnmarshalJSON

func (r *IPSECTunnelListResponse) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelListResponseEnvelope

type IPSECTunnelListResponseEnvelope struct {
	Errors   []shared.ResponseInfo   `json:"errors,required"`
	Messages []shared.ResponseInfo   `json:"messages,required"`
	Result   IPSECTunnelListResponse `json:"result,required"`
	// Whether the API call was successful
	Success IPSECTunnelListResponseEnvelopeSuccess `json:"success,required"`
	JSON    ipsecTunnelListResponseEnvelopeJSON    `json:"-"`
}

func (*IPSECTunnelListResponseEnvelope) UnmarshalJSON

func (r *IPSECTunnelListResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelListResponseEnvelopeSuccess

type IPSECTunnelListResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	IPSECTunnelListResponseEnvelopeSuccessTrue IPSECTunnelListResponseEnvelopeSuccess = true
)

func (IPSECTunnelListResponseEnvelopeSuccess) IsKnown

type IPSECTunnelListResponseIPSECTunnel

type IPSECTunnelListResponseIPSECTunnel struct {
	// The IP address assigned to the Cloudflare side of the IPsec tunnel.
	CloudflareEndpoint string `json:"cloudflare_endpoint,required"`
	// A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side
	// of the tunnel. Select the subnet from the following private IP space:
	// 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.
	InterfaceAddress string `json:"interface_address,required"`
	// The name of the IPsec tunnel. The name cannot share a name with other tunnels.
	Name string `json:"name,required"`
	// Tunnel identifier tag.
	ID string `json:"id"`
	// When `true`, the tunnel can use a null-cipher (`ENCR_NULL`) in the ESP tunnel
	// (Phase 2).
	AllowNullCipher bool `json:"allow_null_cipher"`
	// The date and time the tunnel was created.
	CreatedOn time.Time `json:"created_on" format:"date-time"`
	// The IP address assigned to the customer side of the IPsec tunnel. Not required,
	// but must be set for proactive traceroutes to work.
	CustomerEndpoint string `json:"customer_endpoint"`
	// An optional description forthe IPsec tunnel.
	Description string `json:"description"`
	// The date and time the tunnel was last modified.
	ModifiedOn time.Time `json:"modified_on" format:"date-time"`
	// The PSK metadata that includes when the PSK was generated.
	PSKMetadata PSKMetadata `json:"psk_metadata"`
	// If `true`, then IPsec replay protection will be supported in the
	// Cloudflare-to-customer direction.
	ReplayProtection  bool                                                 `json:"replay_protection"`
	TunnelHealthCheck IPSECTunnelListResponseIPSECTunnelsTunnelHealthCheck `json:"tunnel_health_check"`
	JSON              ipsecTunnelListResponseIPSECTunnelJSON               `json:"-"`
}

func (*IPSECTunnelListResponseIPSECTunnel) UnmarshalJSON

func (r *IPSECTunnelListResponseIPSECTunnel) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelListResponseIPSECTunnelsTunnelHealthCheck

type IPSECTunnelListResponseIPSECTunnelsTunnelHealthCheck struct {
	// Determines whether to run healthchecks for a tunnel.
	Enabled bool `json:"enabled"`
	// How frequent the health check is run. The default value is `mid`.
	Rate HealthCheckRate `json:"rate"`
	// The destination address in a request type health check. After the healthcheck is
	// decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded
	// to this address. This field defaults to `customer_gre_endpoint address`.
	Target string `json:"target"`
	// The type of healthcheck to run, reply or request. The default value is `reply`.
	Type HealthCheckType                                          `json:"type"`
	JSON ipsecTunnelListResponseIPSECTunnelsTunnelHealthCheckJSON `json:"-"`
}

func (*IPSECTunnelListResponseIPSECTunnelsTunnelHealthCheck) UnmarshalJSON

func (r *IPSECTunnelListResponseIPSECTunnelsTunnelHealthCheck) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelNewParams

type IPSECTunnelNewParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	// The IP address assigned to the Cloudflare side of the IPsec tunnel.
	CloudflareEndpoint param.Field[string] `json:"cloudflare_endpoint,required"`
	// A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side
	// of the tunnel. Select the subnet from the following private IP space:
	// 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.
	InterfaceAddress param.Field[string] `json:"interface_address,required"`
	// The name of the IPsec tunnel. The name cannot share a name with other tunnels.
	Name param.Field[string] `json:"name,required"`
	// The IP address assigned to the customer side of the IPsec tunnel. Not required,
	// but must be set for proactive traceroutes to work.
	CustomerEndpoint param.Field[string] `json:"customer_endpoint"`
	// An optional description forthe IPsec tunnel.
	Description param.Field[string]           `json:"description"`
	HealthCheck param.Field[HealthCheckParam] `json:"health_check"`
	// A randomly generated or provided string for use in the IPsec tunnel.
	PSK param.Field[string] `json:"psk"`
	// If `true`, then IPsec replay protection will be supported in the
	// Cloudflare-to-customer direction.
	ReplayProtection param.Field[bool] `json:"replay_protection"`
}

func (IPSECTunnelNewParams) MarshalJSON

func (r IPSECTunnelNewParams) MarshalJSON() (data []byte, err error)

type IPSECTunnelNewResponse

type IPSECTunnelNewResponse struct {
	IPSECTunnels []IPSECTunnelNewResponseIPSECTunnel `json:"ipsec_tunnels"`
	JSON         ipsecTunnelNewResponseJSON          `json:"-"`
}

func (*IPSECTunnelNewResponse) UnmarshalJSON

func (r *IPSECTunnelNewResponse) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelNewResponseEnvelope

type IPSECTunnelNewResponseEnvelope struct {
	Errors   []shared.ResponseInfo  `json:"errors,required"`
	Messages []shared.ResponseInfo  `json:"messages,required"`
	Result   IPSECTunnelNewResponse `json:"result,required"`
	// Whether the API call was successful
	Success IPSECTunnelNewResponseEnvelopeSuccess `json:"success,required"`
	JSON    ipsecTunnelNewResponseEnvelopeJSON    `json:"-"`
}

func (*IPSECTunnelNewResponseEnvelope) UnmarshalJSON

func (r *IPSECTunnelNewResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelNewResponseEnvelopeSuccess

type IPSECTunnelNewResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	IPSECTunnelNewResponseEnvelopeSuccessTrue IPSECTunnelNewResponseEnvelopeSuccess = true
)

func (IPSECTunnelNewResponseEnvelopeSuccess) IsKnown

type IPSECTunnelNewResponseIPSECTunnel

type IPSECTunnelNewResponseIPSECTunnel struct {
	// The IP address assigned to the Cloudflare side of the IPsec tunnel.
	CloudflareEndpoint string `json:"cloudflare_endpoint,required"`
	// A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side
	// of the tunnel. Select the subnet from the following private IP space:
	// 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.
	InterfaceAddress string `json:"interface_address,required"`
	// The name of the IPsec tunnel. The name cannot share a name with other tunnels.
	Name string `json:"name,required"`
	// Tunnel identifier tag.
	ID string `json:"id"`
	// When `true`, the tunnel can use a null-cipher (`ENCR_NULL`) in the ESP tunnel
	// (Phase 2).
	AllowNullCipher bool `json:"allow_null_cipher"`
	// The date and time the tunnel was created.
	CreatedOn time.Time `json:"created_on" format:"date-time"`
	// The IP address assigned to the customer side of the IPsec tunnel. Not required,
	// but must be set for proactive traceroutes to work.
	CustomerEndpoint string `json:"customer_endpoint"`
	// An optional description forthe IPsec tunnel.
	Description string `json:"description"`
	// The date and time the tunnel was last modified.
	ModifiedOn time.Time `json:"modified_on" format:"date-time"`
	// The PSK metadata that includes when the PSK was generated.
	PSKMetadata PSKMetadata `json:"psk_metadata"`
	// If `true`, then IPsec replay protection will be supported in the
	// Cloudflare-to-customer direction.
	ReplayProtection  bool                                                `json:"replay_protection"`
	TunnelHealthCheck IPSECTunnelNewResponseIPSECTunnelsTunnelHealthCheck `json:"tunnel_health_check"`
	JSON              ipsecTunnelNewResponseIPSECTunnelJSON               `json:"-"`
}

func (*IPSECTunnelNewResponseIPSECTunnel) UnmarshalJSON

func (r *IPSECTunnelNewResponseIPSECTunnel) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelNewResponseIPSECTunnelsTunnelHealthCheck

type IPSECTunnelNewResponseIPSECTunnelsTunnelHealthCheck struct {
	// Determines whether to run healthchecks for a tunnel.
	Enabled bool `json:"enabled"`
	// How frequent the health check is run. The default value is `mid`.
	Rate HealthCheckRate `json:"rate"`
	// The destination address in a request type health check. After the healthcheck is
	// decapsulated at the customer end of the tunnel, the ICMP echo will be forwarded
	// to this address. This field defaults to `customer_gre_endpoint address`.
	Target string `json:"target"`
	// The type of healthcheck to run, reply or request. The default value is `reply`.
	Type HealthCheckType                                         `json:"type"`
	JSON ipsecTunnelNewResponseIPSECTunnelsTunnelHealthCheckJSON `json:"-"`
}

func (*IPSECTunnelNewResponseIPSECTunnelsTunnelHealthCheck) UnmarshalJSON

func (r *IPSECTunnelNewResponseIPSECTunnelsTunnelHealthCheck) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelPSKGenerateParams

type IPSECTunnelPSKGenerateParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Body      interface{}         `json:"body,required"`
}

func (IPSECTunnelPSKGenerateParams) MarshalJSON

func (r IPSECTunnelPSKGenerateParams) MarshalJSON() (data []byte, err error)

type IPSECTunnelPSKGenerateResponse

type IPSECTunnelPSKGenerateResponse struct {
	// Identifier
	IPSECTunnelID string `json:"ipsec_tunnel_id"`
	// A randomly generated or provided string for use in the IPsec tunnel.
	PSK string `json:"psk"`
	// The PSK metadata that includes when the PSK was generated.
	PSKMetadata PSKMetadata                        `json:"psk_metadata"`
	JSON        ipsecTunnelPSKGenerateResponseJSON `json:"-"`
}

func (*IPSECTunnelPSKGenerateResponse) UnmarshalJSON

func (r *IPSECTunnelPSKGenerateResponse) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelPSKGenerateResponseEnvelope

type IPSECTunnelPSKGenerateResponseEnvelope struct {
	Errors   []shared.ResponseInfo          `json:"errors,required"`
	Messages []shared.ResponseInfo          `json:"messages,required"`
	Result   IPSECTunnelPSKGenerateResponse `json:"result,required"`
	// Whether the API call was successful
	Success IPSECTunnelPSKGenerateResponseEnvelopeSuccess `json:"success,required"`
	JSON    ipsecTunnelPSKGenerateResponseEnvelopeJSON    `json:"-"`
}

func (*IPSECTunnelPSKGenerateResponseEnvelope) UnmarshalJSON

func (r *IPSECTunnelPSKGenerateResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelPSKGenerateResponseEnvelopeSuccess

type IPSECTunnelPSKGenerateResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	IPSECTunnelPSKGenerateResponseEnvelopeSuccessTrue IPSECTunnelPSKGenerateResponseEnvelopeSuccess = true
)

func (IPSECTunnelPSKGenerateResponseEnvelopeSuccess) IsKnown

type IPSECTunnelService

type IPSECTunnelService struct {
	Options []option.RequestOption
}

IPSECTunnelService contains methods and other services that help with interacting with the cloudflare API. Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewIPSECTunnelService method instead.

func NewIPSECTunnelService

func NewIPSECTunnelService(opts ...option.RequestOption) (r *IPSECTunnelService)

NewIPSECTunnelService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*IPSECTunnelService) Delete

func (r *IPSECTunnelService) Delete(ctx context.Context, tunnelIdentifier string, params IPSECTunnelDeleteParams, opts ...option.RequestOption) (res *IPSECTunnelDeleteResponse, err error)

Disables and removes a specific static IPsec Tunnel associated with an account. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.

func (*IPSECTunnelService) Get

func (r *IPSECTunnelService) Get(ctx context.Context, tunnelIdentifier string, query IPSECTunnelGetParams, opts ...option.RequestOption) (res *IPSECTunnelGetResponse, err error)

Lists details for a specific IPsec tunnel.

func (*IPSECTunnelService) List

Lists IPsec tunnels associated with an account.

func (*IPSECTunnelService) New

Creates new IPsec tunnels associated with an account. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.

func (*IPSECTunnelService) PSKGenerate

func (r *IPSECTunnelService) PSKGenerate(ctx context.Context, tunnelIdentifier string, params IPSECTunnelPSKGenerateParams, opts ...option.RequestOption) (res *IPSECTunnelPSKGenerateResponse, err error)

Generates a Pre Shared Key for a specific IPsec tunnel used in the IKE session. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes. After a PSK is generated, the PSK is immediately persisted to Cloudflare's edge and cannot be retrieved later. Note the PSK in a safe place.

func (*IPSECTunnelService) Update

func (r *IPSECTunnelService) Update(ctx context.Context, tunnelIdentifier string, params IPSECTunnelUpdateParams, opts ...option.RequestOption) (res *IPSECTunnelUpdateResponse, err error)

Updates a specific IPsec tunnel associated with an account. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes.

type IPSECTunnelUpdateParams

type IPSECTunnelUpdateParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	// The IP address assigned to the Cloudflare side of the IPsec tunnel.
	CloudflareEndpoint param.Field[string] `json:"cloudflare_endpoint,required"`
	// A 31-bit prefix (/31 in CIDR notation) supporting two hosts, one for each side
	// of the tunnel. Select the subnet from the following private IP space:
	// 10.0.0.0–10.255.255.255, 172.16.0.0–172.31.255.255, 192.168.0.0–192.168.255.255.
	InterfaceAddress param.Field[string] `json:"interface_address,required"`
	// The name of the IPsec tunnel. The name cannot share a name with other tunnels.
	Name param.Field[string] `json:"name,required"`
	// The IP address assigned to the customer side of the IPsec tunnel. Not required,
	// but must be set for proactive traceroutes to work.
	CustomerEndpoint param.Field[string] `json:"customer_endpoint"`
	// An optional description forthe IPsec tunnel.
	Description param.Field[string]           `json:"description"`
	HealthCheck param.Field[HealthCheckParam] `json:"health_check"`
	// A randomly generated or provided string for use in the IPsec tunnel.
	PSK param.Field[string] `json:"psk"`
	// If `true`, then IPsec replay protection will be supported in the
	// Cloudflare-to-customer direction.
	ReplayProtection param.Field[bool] `json:"replay_protection"`
}

func (IPSECTunnelUpdateParams) MarshalJSON

func (r IPSECTunnelUpdateParams) MarshalJSON() (data []byte, err error)

type IPSECTunnelUpdateResponse

type IPSECTunnelUpdateResponse struct {
	Modified            bool                          `json:"modified"`
	ModifiedIPSECTunnel interface{}                   `json:"modified_ipsec_tunnel"`
	JSON                ipsecTunnelUpdateResponseJSON `json:"-"`
}

func (*IPSECTunnelUpdateResponse) UnmarshalJSON

func (r *IPSECTunnelUpdateResponse) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelUpdateResponseEnvelope

type IPSECTunnelUpdateResponseEnvelope struct {
	Errors   []shared.ResponseInfo     `json:"errors,required"`
	Messages []shared.ResponseInfo     `json:"messages,required"`
	Result   IPSECTunnelUpdateResponse `json:"result,required"`
	// Whether the API call was successful
	Success IPSECTunnelUpdateResponseEnvelopeSuccess `json:"success,required"`
	JSON    ipsecTunnelUpdateResponseEnvelopeJSON    `json:"-"`
}

func (*IPSECTunnelUpdateResponseEnvelope) UnmarshalJSON

func (r *IPSECTunnelUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type IPSECTunnelUpdateResponseEnvelopeSuccess

type IPSECTunnelUpdateResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	IPSECTunnelUpdateResponseEnvelopeSuccessTrue IPSECTunnelUpdateResponseEnvelopeSuccess = true
)

func (IPSECTunnelUpdateResponseEnvelopeSuccess) IsKnown

type LAN

type LAN struct {
	// Identifier
	ID string `json:"id"`
	// mark true to use this LAN for HA probing. only works for site with HA turned on.
	// only one LAN can be set as the ha_link.
	HaLink        bool           `json:"ha_link"`
	Name          string         `json:"name"`
	Nat           Nat            `json:"nat"`
	Physport      int64          `json:"physport"`
	RoutedSubnets []RoutedSubnet `json:"routed_subnets"`
	// Identifier
	SiteID string `json:"site_id"`
	// If the site is not configured in high availability mode, this configuration is
	// optional (if omitted, use DHCP). However, if in high availability mode,
	// static_address is required along with secondary and virtual address.
	StaticAddressing LANStaticAddressing `json:"static_addressing"`
	// VLAN port number.
	VlanTag int64   `json:"vlan_tag"`
	JSON    lanJSON `json:"-"`
}

func (*LAN) UnmarshalJSON

func (r *LAN) UnmarshalJSON(data []byte) (err error)

type LANStaticAddressing

type LANStaticAddressing struct {
	// A valid CIDR notation representing an IP range.
	Address    string     `json:"address,required"`
	DHCPRelay  DHCPRelay  `json:"dhcp_relay"`
	DHCPServer DHCPServer `json:"dhcp_server"`
	// A valid CIDR notation representing an IP range.
	SecondaryAddress string `json:"secondary_address"`
	// A valid CIDR notation representing an IP range.
	VirtualAddress string                  `json:"virtual_address"`
	JSON           lanStaticAddressingJSON `json:"-"`
}

If the site is not configured in high availability mode, this configuration is optional (if omitted, use DHCP). However, if in high availability mode, static_address is required along with secondary and virtual address.

func (*LANStaticAddressing) UnmarshalJSON

func (r *LANStaticAddressing) UnmarshalJSON(data []byte) (err error)

type LANStaticAddressingParam

type LANStaticAddressingParam struct {
	// A valid CIDR notation representing an IP range.
	Address    param.Field[string]          `json:"address,required"`
	DHCPRelay  param.Field[DHCPRelayParam]  `json:"dhcp_relay"`
	DHCPServer param.Field[DHCPServerParam] `json:"dhcp_server"`
	// A valid CIDR notation representing an IP range.
	SecondaryAddress param.Field[string] `json:"secondary_address"`
	// A valid CIDR notation representing an IP range.
	VirtualAddress param.Field[string] `json:"virtual_address"`
}

If the site is not configured in high availability mode, this configuration is optional (if omitted, use DHCP). However, if in high availability mode, static_address is required along with secondary and virtual address.

func (LANStaticAddressingParam) MarshalJSON

func (r LANStaticAddressingParam) MarshalJSON() (data []byte, err error)

type MagicTransitService

type MagicTransitService struct {
	Options         []option.RequestOption
	CfInterconnects *CfInterconnectService
	GRETunnels      *GRETunnelService
	IPSECTunnels    *IPSECTunnelService
	Routes          *RouteService
	Sites           *SiteService
}

MagicTransitService contains methods and other services that help with interacting with the cloudflare API. Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewMagicTransitService method instead.

func NewMagicTransitService

func NewMagicTransitService(opts ...option.RequestOption) (r *MagicTransitService)

NewMagicTransitService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

type Member added in v2.1.0

type Member = shared.Member

This is an alias to an internal type.

type MemberParam added in v2.1.0

type MemberParam = shared.MemberParam

This is an alias to an internal type.

type MemberRole added in v2.1.0

type MemberRole = shared.MemberRole

This is an alias to an internal type.

type MemberRoleParam added in v2.1.0

type MemberRoleParam = shared.MemberRoleParam

This is an alias to an internal type.

type MemberRolesPermissions added in v2.1.0

type MemberRolesPermissions = shared.MemberRolesPermissions

This is an alias to an internal type.

type MemberRolesPermissionsParam added in v2.1.0

type MemberRolesPermissionsParam = shared.MemberRolesPermissionsParam

This is an alias to an internal type.

type MemberUser added in v2.1.0

type MemberUser = shared.MemberUser

This is an alias to an internal type.

type MemberUserParam added in v2.1.0

type MemberUserParam = shared.MemberUserParam

This is an alias to an internal type.

type Nat

type Nat struct {
	// A valid CIDR notation representing an IP range.
	StaticPrefix string  `json:"static_prefix"`
	JSON         natJSON `json:"-"`
}

func (*Nat) UnmarshalJSON

func (r *Nat) UnmarshalJSON(data []byte) (err error)

type NatParam

type NatParam struct {
	// A valid CIDR notation representing an IP range.
	StaticPrefix param.Field[string] `json:"static_prefix"`
}

func (NatParam) MarshalJSON

func (r NatParam) MarshalJSON() (data []byte, err error)

type PSKMetadata

type PSKMetadata struct {
	// The date and time the tunnel was last modified.
	LastGeneratedOn time.Time       `json:"last_generated_on" format:"date-time"`
	JSON            pskMetadataJSON `json:"-"`
}

The PSK metadata that includes when the PSK was generated.

func (*PSKMetadata) UnmarshalJSON

func (r *PSKMetadata) UnmarshalJSON(data []byte) (err error)

type Permission

type Permission = shared.Permission

This is an alias to an internal type.

type PermissionGrant

type PermissionGrant = shared.PermissionGrant

This is an alias to an internal type.

type PermissionGrantParam

type PermissionGrantParam = shared.PermissionGrantParam

This is an alias to an internal type.

type ResponseInfo

type ResponseInfo = shared.ResponseInfo

This is an alias to an internal type.

type Role

type Role = shared.Role

This is an alias to an internal type.

type RouteDeleteParams

type RouteDeleteParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Body      interface{}         `json:"body,required"`
}

func (RouteDeleteParams) MarshalJSON

func (r RouteDeleteParams) MarshalJSON() (data []byte, err error)

type RouteDeleteResponse

type RouteDeleteResponse struct {
	Deleted      bool                    `json:"deleted"`
	DeletedRoute interface{}             `json:"deleted_route"`
	JSON         routeDeleteResponseJSON `json:"-"`
}

func (*RouteDeleteResponse) UnmarshalJSON

func (r *RouteDeleteResponse) UnmarshalJSON(data []byte) (err error)

type RouteDeleteResponseEnvelope

type RouteDeleteResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   RouteDeleteResponse   `json:"result,required"`
	// Whether the API call was successful
	Success RouteDeleteResponseEnvelopeSuccess `json:"success,required"`
	JSON    routeDeleteResponseEnvelopeJSON    `json:"-"`
}

func (*RouteDeleteResponseEnvelope) UnmarshalJSON

func (r *RouteDeleteResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type RouteDeleteResponseEnvelopeSuccess

type RouteDeleteResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	RouteDeleteResponseEnvelopeSuccessTrue RouteDeleteResponseEnvelopeSuccess = true
)

func (RouteDeleteResponseEnvelopeSuccess) IsKnown

type RouteEmptyParams

type RouteEmptyParams struct {
	// Identifier
	AccountID param.Field[string]                  `path:"account_id,required"`
	Routes    param.Field[[]RouteEmptyParamsRoute] `json:"routes,required"`
}

func (RouteEmptyParams) MarshalJSON

func (r RouteEmptyParams) MarshalJSON() (data []byte, err error)

type RouteEmptyParamsRoute

type RouteEmptyParamsRoute struct {
}

func (RouteEmptyParamsRoute) MarshalJSON

func (r RouteEmptyParamsRoute) MarshalJSON() (data []byte, err error)

type RouteEmptyResponse

type RouteEmptyResponse struct {
	Deleted       bool                   `json:"deleted"`
	DeletedRoutes interface{}            `json:"deleted_routes"`
	JSON          routeEmptyResponseJSON `json:"-"`
}

func (*RouteEmptyResponse) UnmarshalJSON

func (r *RouteEmptyResponse) UnmarshalJSON(data []byte) (err error)

type RouteEmptyResponseEnvelope

type RouteEmptyResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   RouteEmptyResponse    `json:"result,required"`
	// Whether the API call was successful
	Success RouteEmptyResponseEnvelopeSuccess `json:"success,required"`
	JSON    routeEmptyResponseEnvelopeJSON    `json:"-"`
}

func (*RouteEmptyResponseEnvelope) UnmarshalJSON

func (r *RouteEmptyResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type RouteEmptyResponseEnvelopeSuccess

type RouteEmptyResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	RouteEmptyResponseEnvelopeSuccessTrue RouteEmptyResponseEnvelopeSuccess = true
)

func (RouteEmptyResponseEnvelopeSuccess) IsKnown

type RouteGetParams

type RouteGetParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type RouteGetResponse

type RouteGetResponse struct {
	Route interface{}          `json:"route"`
	JSON  routeGetResponseJSON `json:"-"`
}

func (*RouteGetResponse) UnmarshalJSON

func (r *RouteGetResponse) UnmarshalJSON(data []byte) (err error)

type RouteGetResponseEnvelope

type RouteGetResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   RouteGetResponse      `json:"result,required"`
	// Whether the API call was successful
	Success RouteGetResponseEnvelopeSuccess `json:"success,required"`
	JSON    routeGetResponseEnvelopeJSON    `json:"-"`
}

func (*RouteGetResponseEnvelope) UnmarshalJSON

func (r *RouteGetResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type RouteGetResponseEnvelopeSuccess

type RouteGetResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	RouteGetResponseEnvelopeSuccessTrue RouteGetResponseEnvelopeSuccess = true
)

func (RouteGetResponseEnvelopeSuccess) IsKnown

type RouteListParams

type RouteListParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type RouteListResponse

type RouteListResponse struct {
	Routes []RouteListResponseRoute `json:"routes"`
	JSON   routeListResponseJSON    `json:"-"`
}

func (*RouteListResponse) UnmarshalJSON

func (r *RouteListResponse) UnmarshalJSON(data []byte) (err error)

type RouteListResponseEnvelope

type RouteListResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   RouteListResponse     `json:"result,required"`
	// Whether the API call was successful
	Success RouteListResponseEnvelopeSuccess `json:"success,required"`
	JSON    routeListResponseEnvelopeJSON    `json:"-"`
}

func (*RouteListResponseEnvelope) UnmarshalJSON

func (r *RouteListResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type RouteListResponseEnvelopeSuccess

type RouteListResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	RouteListResponseEnvelopeSuccessTrue RouteListResponseEnvelopeSuccess = true
)

func (RouteListResponseEnvelopeSuccess) IsKnown

type RouteListResponseRoute

type RouteListResponseRoute struct {
	// The next-hop IP Address for the static route.
	Nexthop string `json:"nexthop,required"`
	// IP Prefix in Classless Inter-Domain Routing format.
	Prefix string `json:"prefix,required"`
	// Priority of the static route.
	Priority int64 `json:"priority,required"`
	// Identifier
	ID string `json:"id"`
	// When the route was created.
	CreatedOn time.Time `json:"created_on" format:"date-time"`
	// An optional human provided description of the static route.
	Description string `json:"description"`
	// When the route was last modified.
	ModifiedOn time.Time `json:"modified_on" format:"date-time"`
	// Used only for ECMP routes.
	Scope Scope `json:"scope"`
	// Optional weight of the ECMP scope - if provided.
	Weight int64                      `json:"weight"`
	JSON   routeListResponseRouteJSON `json:"-"`
}

func (*RouteListResponseRoute) UnmarshalJSON

func (r *RouteListResponseRoute) UnmarshalJSON(data []byte) (err error)

type RouteNewParams

type RouteNewParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Body      interface{}         `json:"body,required"`
}

func (RouteNewParams) MarshalJSON

func (r RouteNewParams) MarshalJSON() (data []byte, err error)

type RouteNewResponse

type RouteNewResponse struct {
	Routes []RouteNewResponseRoute `json:"routes"`
	JSON   routeNewResponseJSON    `json:"-"`
}

func (*RouteNewResponse) UnmarshalJSON

func (r *RouteNewResponse) UnmarshalJSON(data []byte) (err error)

type RouteNewResponseEnvelope

type RouteNewResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   RouteNewResponse      `json:"result,required"`
	// Whether the API call was successful
	Success RouteNewResponseEnvelopeSuccess `json:"success,required"`
	JSON    routeNewResponseEnvelopeJSON    `json:"-"`
}

func (*RouteNewResponseEnvelope) UnmarshalJSON

func (r *RouteNewResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type RouteNewResponseEnvelopeSuccess

type RouteNewResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	RouteNewResponseEnvelopeSuccessTrue RouteNewResponseEnvelopeSuccess = true
)

func (RouteNewResponseEnvelopeSuccess) IsKnown

type RouteNewResponseRoute

type RouteNewResponseRoute struct {
	// The next-hop IP Address for the static route.
	Nexthop string `json:"nexthop,required"`
	// IP Prefix in Classless Inter-Domain Routing format.
	Prefix string `json:"prefix,required"`
	// Priority of the static route.
	Priority int64 `json:"priority,required"`
	// Identifier
	ID string `json:"id"`
	// When the route was created.
	CreatedOn time.Time `json:"created_on" format:"date-time"`
	// An optional human provided description of the static route.
	Description string `json:"description"`
	// When the route was last modified.
	ModifiedOn time.Time `json:"modified_on" format:"date-time"`
	// Used only for ECMP routes.
	Scope Scope `json:"scope"`
	// Optional weight of the ECMP scope - if provided.
	Weight int64                     `json:"weight"`
	JSON   routeNewResponseRouteJSON `json:"-"`
}

func (*RouteNewResponseRoute) UnmarshalJSON

func (r *RouteNewResponseRoute) UnmarshalJSON(data []byte) (err error)

type RouteService

type RouteService struct {
	Options []option.RequestOption
}

RouteService contains methods and other services that help with interacting with the cloudflare API. Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewRouteService method instead.

func NewRouteService

func NewRouteService(opts ...option.RequestOption) (r *RouteService)

NewRouteService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*RouteService) Delete

func (r *RouteService) Delete(ctx context.Context, routeIdentifier string, params RouteDeleteParams, opts ...option.RequestOption) (res *RouteDeleteResponse, err error)

Disable and remove a specific Magic static route.

func (*RouteService) Empty

func (r *RouteService) Empty(ctx context.Context, params RouteEmptyParams, opts ...option.RequestOption) (res *RouteEmptyResponse, err error)

Delete multiple Magic static routes.

func (*RouteService) Get

func (r *RouteService) Get(ctx context.Context, routeIdentifier string, query RouteGetParams, opts ...option.RequestOption) (res *RouteGetResponse, err error)

Get a specific Magic static route.

func (*RouteService) List

func (r *RouteService) List(ctx context.Context, query RouteListParams, opts ...option.RequestOption) (res *RouteListResponse, err error)

List all Magic static routes.

func (*RouteService) New

func (r *RouteService) New(ctx context.Context, params RouteNewParams, opts ...option.RequestOption) (res *RouteNewResponse, err error)

Creates a new Magic static route. Use `?validate_only=true` as an optional query parameter to run validation only without persisting changes.

func (*RouteService) Update

func (r *RouteService) Update(ctx context.Context, routeIdentifier string, params RouteUpdateParams, opts ...option.RequestOption) (res *RouteUpdateResponse, err error)

Update a specific Magic static route. Use `?validate_only=true` as an optional query parameter to run validation only without persisting changes.

type RouteUpdateParams

type RouteUpdateParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	// The next-hop IP Address for the static route.
	Nexthop param.Field[string] `json:"nexthop,required"`
	// IP Prefix in Classless Inter-Domain Routing format.
	Prefix param.Field[string] `json:"prefix,required"`
	// Priority of the static route.
	Priority param.Field[int64] `json:"priority,required"`
	// An optional human provided description of the static route.
	Description param.Field[string] `json:"description"`
	// Used only for ECMP routes.
	Scope param.Field[ScopeParam] `json:"scope"`
	// Optional weight of the ECMP scope - if provided.
	Weight param.Field[int64] `json:"weight"`
}

func (RouteUpdateParams) MarshalJSON

func (r RouteUpdateParams) MarshalJSON() (data []byte, err error)

type RouteUpdateResponse

type RouteUpdateResponse struct {
	Modified      bool                    `json:"modified"`
	ModifiedRoute interface{}             `json:"modified_route"`
	JSON          routeUpdateResponseJSON `json:"-"`
}

func (*RouteUpdateResponse) UnmarshalJSON

func (r *RouteUpdateResponse) UnmarshalJSON(data []byte) (err error)

type RouteUpdateResponseEnvelope

type RouteUpdateResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   RouteUpdateResponse   `json:"result,required"`
	// Whether the API call was successful
	Success RouteUpdateResponseEnvelopeSuccess `json:"success,required"`
	JSON    routeUpdateResponseEnvelopeJSON    `json:"-"`
}

func (*RouteUpdateResponseEnvelope) UnmarshalJSON

func (r *RouteUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type RouteUpdateResponseEnvelopeSuccess

type RouteUpdateResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	RouteUpdateResponseEnvelopeSuccessTrue RouteUpdateResponseEnvelopeSuccess = true
)

func (RouteUpdateResponseEnvelopeSuccess) IsKnown

type RoutedSubnet

type RoutedSubnet struct {
	// A valid IPv4 address.
	NextHop string `json:"next_hop,required"`
	// A valid CIDR notation representing an IP range.
	Prefix string           `json:"prefix,required"`
	Nat    Nat              `json:"nat"`
	JSON   routedSubnetJSON `json:"-"`
}

func (*RoutedSubnet) UnmarshalJSON

func (r *RoutedSubnet) UnmarshalJSON(data []byte) (err error)

type RoutedSubnetParam

type RoutedSubnetParam struct {
	// A valid IPv4 address.
	NextHop param.Field[string] `json:"next_hop,required"`
	// A valid CIDR notation representing an IP range.
	Prefix param.Field[string]   `json:"prefix,required"`
	Nat    param.Field[NatParam] `json:"nat"`
}

func (RoutedSubnetParam) MarshalJSON

func (r RoutedSubnetParam) MarshalJSON() (data []byte, err error)

type Scope

type Scope struct {
	// List of colo names for the ECMP scope.
	ColoNames ColoName `json:"colo_names"`
	// List of colo regions for the ECMP scope.
	ColoRegions ColoRegion `json:"colo_regions"`
	JSON        scopeJSON  `json:"-"`
}

Used only for ECMP routes.

func (*Scope) UnmarshalJSON

func (r *Scope) UnmarshalJSON(data []byte) (err error)

type ScopeParam

type ScopeParam struct {
	// List of colo names for the ECMP scope.
	ColoNames param.Field[ColoNameParam] `json:"colo_names"`
	// List of colo regions for the ECMP scope.
	ColoRegions param.Field[ColoRegionParam] `json:"colo_regions"`
}

Used only for ECMP routes.

func (ScopeParam) MarshalJSON

func (r ScopeParam) MarshalJSON() (data []byte, err error)

type Site

type Site struct {
	// Identifier
	ID string `json:"id"`
	// Magic WAN Connector identifier tag.
	ConnectorID string `json:"connector_id"`
	Description string `json:"description"`
	// Site high availability mode. If set to true, the site can have two connectors
	// and runs in high availability mode.
	HaMode bool `json:"ha_mode"`
	// Location of site in latitude and longitude.
	Location SiteLocation `json:"location"`
	// The name of the site.
	Name string `json:"name"`
	// Magic WAN Connector identifier tag. Used when high availability mode is on.
	SecondaryConnectorID string   `json:"secondary_connector_id"`
	JSON                 siteJSON `json:"-"`
}

func (*Site) UnmarshalJSON

func (r *Site) UnmarshalJSON(data []byte) (err error)

type SiteACLDeleteParams

type SiteACLDeleteParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Body      interface{}         `json:"body,required"`
}

func (SiteACLDeleteParams) MarshalJSON

func (r SiteACLDeleteParams) MarshalJSON() (data []byte, err error)

type SiteACLDeleteResponseEnvelope

type SiteACLDeleteResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	// Bidirectional ACL policy for network traffic within a site.
	Result ACL `json:"result,required"`
	// Whether the API call was successful
	Success SiteACLDeleteResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteACLDeleteResponseEnvelopeJSON    `json:"-"`
}

func (*SiteACLDeleteResponseEnvelope) UnmarshalJSON

func (r *SiteACLDeleteResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteACLDeleteResponseEnvelopeSuccess

type SiteACLDeleteResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteACLDeleteResponseEnvelopeSuccessTrue SiteACLDeleteResponseEnvelopeSuccess = true
)

func (SiteACLDeleteResponseEnvelopeSuccess) IsKnown

type SiteACLGetParams

type SiteACLGetParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type SiteACLGetResponseEnvelope

type SiteACLGetResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	// Bidirectional ACL policy for network traffic within a site.
	Result ACL `json:"result,required"`
	// Whether the API call was successful
	Success SiteACLGetResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteACLGetResponseEnvelopeJSON    `json:"-"`
}

func (*SiteACLGetResponseEnvelope) UnmarshalJSON

func (r *SiteACLGetResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteACLGetResponseEnvelopeSuccess

type SiteACLGetResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteACLGetResponseEnvelopeSuccessTrue SiteACLGetResponseEnvelopeSuccess = true
)

func (SiteACLGetResponseEnvelopeSuccess) IsKnown

type SiteACLListParams

type SiteACLListParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type SiteACLNewParams

type SiteACLNewParams struct {
	// Identifier
	AccountID param.Field[string]                `path:"account_id,required"`
	LAN1      param.Field[ACLConfigurationParam] `json:"lan_1,required"`
	LAN2      param.Field[ACLConfigurationParam] `json:"lan_2,required"`
	// The name of the ACL.
	Name param.Field[string] `json:"name,required"`
	// Description for the ACL.
	Description param.Field[string] `json:"description"`
	// The desired forwarding action for this ACL policy. If set to "false", the policy
	// will forward traffic to Cloudflare. If set to "true", the policy will forward
	// traffic locally on the Magic WAN Connector. If not included in request, will
	// default to false.
	ForwardLocally param.Field[bool]              `json:"forward_locally"`
	Protocols      param.Field[[]AllowedProtocol] `json:"protocols"`
}

func (SiteACLNewParams) MarshalJSON

func (r SiteACLNewParams) MarshalJSON() (data []byte, err error)

type SiteACLNewResponseEnvelope

type SiteACLNewResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	// Bidirectional ACL policy for network traffic within a site.
	Result ACL `json:"result,required"`
	// Whether the API call was successful
	Success SiteACLNewResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteACLNewResponseEnvelopeJSON    `json:"-"`
}

func (*SiteACLNewResponseEnvelope) UnmarshalJSON

func (r *SiteACLNewResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteACLNewResponseEnvelopeSuccess

type SiteACLNewResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteACLNewResponseEnvelopeSuccessTrue SiteACLNewResponseEnvelopeSuccess = true
)

func (SiteACLNewResponseEnvelopeSuccess) IsKnown

type SiteACLService

type SiteACLService struct {
	Options []option.RequestOption
}

SiteACLService contains methods and other services that help with interacting with the cloudflare API. Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewSiteACLService method instead.

func NewSiteACLService

func NewSiteACLService(opts ...option.RequestOption) (r *SiteACLService)

NewSiteACLService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*SiteACLService) Delete

func (r *SiteACLService) Delete(ctx context.Context, siteID string, aclIdentifier string, params SiteACLDeleteParams, opts ...option.RequestOption) (res *ACL, err error)

Remove a specific Site ACL.

func (*SiteACLService) Get

func (r *SiteACLService) Get(ctx context.Context, siteID string, aclIdentifier string, query SiteACLGetParams, opts ...option.RequestOption) (res *ACL, err error)

Get a specific Site ACL.

func (*SiteACLService) List

func (r *SiteACLService) List(ctx context.Context, siteID string, query SiteACLListParams, opts ...option.RequestOption) (res *pagination.SinglePage[ACL], err error)

Lists Site ACLs associated with an account.

func (*SiteACLService) ListAutoPaging added in v2.1.0

Lists Site ACLs associated with an account.

func (*SiteACLService) New

func (r *SiteACLService) New(ctx context.Context, siteID string, params SiteACLNewParams, opts ...option.RequestOption) (res *ACL, err error)

Creates a new Site ACL.

func (*SiteACLService) Update

func (r *SiteACLService) Update(ctx context.Context, siteID string, aclIdentifier string, params SiteACLUpdateParams, opts ...option.RequestOption) (res *ACL, err error)

Update a specific Site ACL.

type SiteACLUpdateParams

type SiteACLUpdateParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	// Description for the ACL.
	Description param.Field[string] `json:"description"`
	// The desired forwarding action for this ACL policy. If set to "false", the policy
	// will forward traffic to Cloudflare. If set to "true", the policy will forward
	// traffic locally on the Magic WAN Connector. If not included in request, will
	// default to false.
	ForwardLocally param.Field[bool]                  `json:"forward_locally"`
	LAN1           param.Field[ACLConfigurationParam] `json:"lan_1"`
	LAN2           param.Field[ACLConfigurationParam] `json:"lan_2"`
	// The name of the ACL.
	Name      param.Field[string]            `json:"name"`
	Protocols param.Field[[]AllowedProtocol] `json:"protocols"`
}

func (SiteACLUpdateParams) MarshalJSON

func (r SiteACLUpdateParams) MarshalJSON() (data []byte, err error)

type SiteACLUpdateResponseEnvelope

type SiteACLUpdateResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	// Bidirectional ACL policy for network traffic within a site.
	Result ACL `json:"result,required"`
	// Whether the API call was successful
	Success SiteACLUpdateResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteACLUpdateResponseEnvelopeJSON    `json:"-"`
}

func (*SiteACLUpdateResponseEnvelope) UnmarshalJSON

func (r *SiteACLUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteACLUpdateResponseEnvelopeSuccess

type SiteACLUpdateResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteACLUpdateResponseEnvelopeSuccessTrue SiteACLUpdateResponseEnvelopeSuccess = true
)

func (SiteACLUpdateResponseEnvelopeSuccess) IsKnown

type SiteDeleteParams

type SiteDeleteParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Body      interface{}         `json:"body,required"`
}

func (SiteDeleteParams) MarshalJSON

func (r SiteDeleteParams) MarshalJSON() (data []byte, err error)

type SiteDeleteResponseEnvelope

type SiteDeleteResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   Site                  `json:"result,required"`
	// Whether the API call was successful
	Success SiteDeleteResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteDeleteResponseEnvelopeJSON    `json:"-"`
}

func (*SiteDeleteResponseEnvelope) UnmarshalJSON

func (r *SiteDeleteResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteDeleteResponseEnvelopeSuccess

type SiteDeleteResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteDeleteResponseEnvelopeSuccessTrue SiteDeleteResponseEnvelopeSuccess = true
)

func (SiteDeleteResponseEnvelopeSuccess) IsKnown

type SiteGetParams

type SiteGetParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type SiteGetResponseEnvelope

type SiteGetResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   Site                  `json:"result,required"`
	// Whether the API call was successful
	Success SiteGetResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteGetResponseEnvelopeJSON    `json:"-"`
}

func (*SiteGetResponseEnvelope) UnmarshalJSON

func (r *SiteGetResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteGetResponseEnvelopeSuccess

type SiteGetResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteGetResponseEnvelopeSuccessTrue SiteGetResponseEnvelopeSuccess = true
)

func (SiteGetResponseEnvelopeSuccess) IsKnown

type SiteLANDeleteParams

type SiteLANDeleteParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Body      interface{}         `json:"body,required"`
}

func (SiteLANDeleteParams) MarshalJSON

func (r SiteLANDeleteParams) MarshalJSON() (data []byte, err error)

type SiteLANDeleteResponseEnvelope

type SiteLANDeleteResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   LAN                   `json:"result,required"`
	// Whether the API call was successful
	Success SiteLANDeleteResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteLANDeleteResponseEnvelopeJSON    `json:"-"`
}

func (*SiteLANDeleteResponseEnvelope) UnmarshalJSON

func (r *SiteLANDeleteResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteLANDeleteResponseEnvelopeSuccess

type SiteLANDeleteResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteLANDeleteResponseEnvelopeSuccessTrue SiteLANDeleteResponseEnvelopeSuccess = true
)

func (SiteLANDeleteResponseEnvelopeSuccess) IsKnown

type SiteLANGetParams

type SiteLANGetParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type SiteLANGetResponseEnvelope

type SiteLANGetResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   LAN                   `json:"result,required"`
	// Whether the API call was successful
	Success SiteLANGetResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteLANGetResponseEnvelopeJSON    `json:"-"`
}

func (*SiteLANGetResponseEnvelope) UnmarshalJSON

func (r *SiteLANGetResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteLANGetResponseEnvelopeSuccess

type SiteLANGetResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteLANGetResponseEnvelopeSuccessTrue SiteLANGetResponseEnvelopeSuccess = true
)

func (SiteLANGetResponseEnvelopeSuccess) IsKnown

type SiteLANListParams

type SiteLANListParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type SiteLANNewParams

type SiteLANNewParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Physport  param.Field[int64]  `json:"physport,required"`
	// VLAN port number.
	VlanTag param.Field[int64] `json:"vlan_tag,required"`
	// mark true to use this LAN for HA probing. only works for site with HA turned on.
	// only one LAN can be set as the ha_link.
	HaLink        param.Field[bool]                `json:"ha_link"`
	Name          param.Field[string]              `json:"name"`
	Nat           param.Field[NatParam]            `json:"nat"`
	RoutedSubnets param.Field[[]RoutedSubnetParam] `json:"routed_subnets"`
	// If the site is not configured in high availability mode, this configuration is
	// optional (if omitted, use DHCP). However, if in high availability mode,
	// static_address is required along with secondary and virtual address.
	StaticAddressing param.Field[LANStaticAddressingParam] `json:"static_addressing"`
}

func (SiteLANNewParams) MarshalJSON

func (r SiteLANNewParams) MarshalJSON() (data []byte, err error)

type SiteLANNewResponseEnvelope

type SiteLANNewResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   []LAN                 `json:"result,required"`
	// Whether the API call was successful
	Success SiteLANNewResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteLANNewResponseEnvelopeJSON    `json:"-"`
}

func (*SiteLANNewResponseEnvelope) UnmarshalJSON

func (r *SiteLANNewResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteLANNewResponseEnvelopeSuccess

type SiteLANNewResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteLANNewResponseEnvelopeSuccessTrue SiteLANNewResponseEnvelopeSuccess = true
)

func (SiteLANNewResponseEnvelopeSuccess) IsKnown

type SiteLANService

type SiteLANService struct {
	Options []option.RequestOption
}

SiteLANService contains methods and other services that help with interacting with the cloudflare API. Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewSiteLANService method instead.

func NewSiteLANService

func NewSiteLANService(opts ...option.RequestOption) (r *SiteLANService)

NewSiteLANService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*SiteLANService) Delete

func (r *SiteLANService) Delete(ctx context.Context, siteID string, lanID string, params SiteLANDeleteParams, opts ...option.RequestOption) (res *LAN, err error)

Remove a specific LAN.

func (*SiteLANService) Get

func (r *SiteLANService) Get(ctx context.Context, siteID string, lanID string, query SiteLANGetParams, opts ...option.RequestOption) (res *LAN, err error)

Get a specific LAN.

func (*SiteLANService) List

func (r *SiteLANService) List(ctx context.Context, siteID string, query SiteLANListParams, opts ...option.RequestOption) (res *pagination.SinglePage[LAN], err error)

Lists LANs associated with an account and site.

func (*SiteLANService) ListAutoPaging added in v2.1.0

Lists LANs associated with an account and site.

func (*SiteLANService) New

func (r *SiteLANService) New(ctx context.Context, siteID string, params SiteLANNewParams, opts ...option.RequestOption) (res *[]LAN, err error)

Creates a new LAN. If the site is in high availability mode, static_addressing is required along with secondary and virtual address.

func (*SiteLANService) Update

func (r *SiteLANService) Update(ctx context.Context, siteID string, lanID string, params SiteLANUpdateParams, opts ...option.RequestOption) (res *LAN, err error)

Update a specific LAN.

type SiteLANUpdateParams

type SiteLANUpdateParams struct {
	// Identifier
	AccountID     param.Field[string]              `path:"account_id,required"`
	Name          param.Field[string]              `json:"name"`
	Nat           param.Field[NatParam]            `json:"nat"`
	Physport      param.Field[int64]               `json:"physport"`
	RoutedSubnets param.Field[[]RoutedSubnetParam] `json:"routed_subnets"`
	// If the site is not configured in high availability mode, this configuration is
	// optional (if omitted, use DHCP). However, if in high availability mode,
	// static_address is required along with secondary and virtual address.
	StaticAddressing param.Field[LANStaticAddressingParam] `json:"static_addressing"`
	// VLAN port number.
	VlanTag param.Field[int64] `json:"vlan_tag"`
}

func (SiteLANUpdateParams) MarshalJSON

func (r SiteLANUpdateParams) MarshalJSON() (data []byte, err error)

type SiteLANUpdateResponseEnvelope

type SiteLANUpdateResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   LAN                   `json:"result,required"`
	// Whether the API call was successful
	Success SiteLANUpdateResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteLANUpdateResponseEnvelopeJSON    `json:"-"`
}

func (*SiteLANUpdateResponseEnvelope) UnmarshalJSON

func (r *SiteLANUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteLANUpdateResponseEnvelopeSuccess

type SiteLANUpdateResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteLANUpdateResponseEnvelopeSuccessTrue SiteLANUpdateResponseEnvelopeSuccess = true
)

func (SiteLANUpdateResponseEnvelopeSuccess) IsKnown

type SiteListParams

type SiteListParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	// Identifier
	ConnectorIdentifier param.Field[string] `query:"connector_identifier"`
}

func (SiteListParams) URLQuery

func (r SiteListParams) URLQuery() (v url.Values)

URLQuery serializes SiteListParams's query parameters as `url.Values`.

type SiteLocation

type SiteLocation struct {
	// Latitude
	Lat string `json:"lat"`
	// Longitude
	Lon  string           `json:"lon"`
	JSON siteLocationJSON `json:"-"`
}

Location of site in latitude and longitude.

func (*SiteLocation) UnmarshalJSON

func (r *SiteLocation) UnmarshalJSON(data []byte) (err error)

type SiteLocationParam

type SiteLocationParam struct {
	// Latitude
	Lat param.Field[string] `json:"lat"`
	// Longitude
	Lon param.Field[string] `json:"lon"`
}

Location of site in latitude and longitude.

func (SiteLocationParam) MarshalJSON

func (r SiteLocationParam) MarshalJSON() (data []byte, err error)

type SiteNewParams

type SiteNewParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	// The name of the site.
	Name param.Field[string] `json:"name,required"`
	// Magic WAN Connector identifier tag.
	ConnectorID param.Field[string] `json:"connector_id"`
	Description param.Field[string] `json:"description"`
	// Site high availability mode. If set to true, the site can have two connectors
	// and runs in high availability mode.
	HaMode param.Field[bool] `json:"ha_mode"`
	// Location of site in latitude and longitude.
	Location param.Field[SiteLocationParam] `json:"location"`
	// Magic WAN Connector identifier tag. Used when high availability mode is on.
	SecondaryConnectorID param.Field[string] `json:"secondary_connector_id"`
}

func (SiteNewParams) MarshalJSON

func (r SiteNewParams) MarshalJSON() (data []byte, err error)

type SiteNewResponseEnvelope

type SiteNewResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   Site                  `json:"result,required"`
	// Whether the API call was successful
	Success SiteNewResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteNewResponseEnvelopeJSON    `json:"-"`
}

func (*SiteNewResponseEnvelope) UnmarshalJSON

func (r *SiteNewResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteNewResponseEnvelopeSuccess

type SiteNewResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteNewResponseEnvelopeSuccessTrue SiteNewResponseEnvelopeSuccess = true
)

func (SiteNewResponseEnvelopeSuccess) IsKnown

type SiteService

type SiteService struct {
	Options []option.RequestOption
	ACLs    *SiteACLService
	LANs    *SiteLANService
	WANs    *SiteWANService
}

SiteService contains methods and other services that help with interacting with the cloudflare API. Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewSiteService method instead.

func NewSiteService

func NewSiteService(opts ...option.RequestOption) (r *SiteService)

NewSiteService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*SiteService) Delete

func (r *SiteService) Delete(ctx context.Context, siteID string, params SiteDeleteParams, opts ...option.RequestOption) (res *Site, err error)

Remove a specific Site.

func (*SiteService) Get

func (r *SiteService) Get(ctx context.Context, siteID string, query SiteGetParams, opts ...option.RequestOption) (res *Site, err error)

Get a specific Site.

func (*SiteService) List

func (r *SiteService) List(ctx context.Context, params SiteListParams, opts ...option.RequestOption) (res *pagination.SinglePage[Site], err error)

Lists Sites associated with an account. Use connector_identifier query param to return sites where connector_identifier matches either site.ConnectorID or site.SecondaryConnectorID.

func (*SiteService) ListAutoPaging added in v2.1.0

Lists Sites associated with an account. Use connector_identifier query param to return sites where connector_identifier matches either site.ConnectorID or site.SecondaryConnectorID.

func (*SiteService) New

func (r *SiteService) New(ctx context.Context, params SiteNewParams, opts ...option.RequestOption) (res *Site, err error)

Creates a new Site

func (*SiteService) Update

func (r *SiteService) Update(ctx context.Context, siteID string, params SiteUpdateParams, opts ...option.RequestOption) (res *Site, err error)

Update a specific Site.

type SiteUpdateParams

type SiteUpdateParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	// Magic WAN Connector identifier tag.
	ConnectorID param.Field[string] `json:"connector_id"`
	Description param.Field[string] `json:"description"`
	// Location of site in latitude and longitude.
	Location param.Field[SiteLocationParam] `json:"location"`
	// The name of the site.
	Name param.Field[string] `json:"name"`
	// Magic WAN Connector identifier tag. Used when high availability mode is on.
	SecondaryConnectorID param.Field[string] `json:"secondary_connector_id"`
}

func (SiteUpdateParams) MarshalJSON

func (r SiteUpdateParams) MarshalJSON() (data []byte, err error)

type SiteUpdateResponseEnvelope

type SiteUpdateResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   Site                  `json:"result,required"`
	// Whether the API call was successful
	Success SiteUpdateResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteUpdateResponseEnvelopeJSON    `json:"-"`
}

func (*SiteUpdateResponseEnvelope) UnmarshalJSON

func (r *SiteUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteUpdateResponseEnvelopeSuccess

type SiteUpdateResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteUpdateResponseEnvelopeSuccessTrue SiteUpdateResponseEnvelopeSuccess = true
)

func (SiteUpdateResponseEnvelopeSuccess) IsKnown

type SiteWANDeleteParams

type SiteWANDeleteParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Body      interface{}         `json:"body,required"`
}

func (SiteWANDeleteParams) MarshalJSON

func (r SiteWANDeleteParams) MarshalJSON() (data []byte, err error)

type SiteWANDeleteResponseEnvelope

type SiteWANDeleteResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   WAN                   `json:"result,required"`
	// Whether the API call was successful
	Success SiteWANDeleteResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteWANDeleteResponseEnvelopeJSON    `json:"-"`
}

func (*SiteWANDeleteResponseEnvelope) UnmarshalJSON

func (r *SiteWANDeleteResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteWANDeleteResponseEnvelopeSuccess

type SiteWANDeleteResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteWANDeleteResponseEnvelopeSuccessTrue SiteWANDeleteResponseEnvelopeSuccess = true
)

func (SiteWANDeleteResponseEnvelopeSuccess) IsKnown

type SiteWANGetParams

type SiteWANGetParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type SiteWANGetResponseEnvelope

type SiteWANGetResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   WAN                   `json:"result,required"`
	// Whether the API call was successful
	Success SiteWANGetResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteWANGetResponseEnvelopeJSON    `json:"-"`
}

func (*SiteWANGetResponseEnvelope) UnmarshalJSON

func (r *SiteWANGetResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteWANGetResponseEnvelopeSuccess

type SiteWANGetResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteWANGetResponseEnvelopeSuccessTrue SiteWANGetResponseEnvelopeSuccess = true
)

func (SiteWANGetResponseEnvelopeSuccess) IsKnown

type SiteWANListParams

type SiteWANListParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
}

type SiteWANNewParams

type SiteWANNewParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Physport  param.Field[int64]  `json:"physport,required"`
	// VLAN port number.
	VlanTag  param.Field[int64]  `json:"vlan_tag,required"`
	Name     param.Field[string] `json:"name"`
	Priority param.Field[int64]  `json:"priority"`
	// (optional) if omitted, use DHCP. Submit secondary_address when site is in high
	// availability mode.
	StaticAddressing param.Field[WANStaticAddressingParam] `json:"static_addressing"`
}

func (SiteWANNewParams) MarshalJSON

func (r SiteWANNewParams) MarshalJSON() (data []byte, err error)

type SiteWANNewResponseEnvelope

type SiteWANNewResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   []WAN                 `json:"result,required"`
	// Whether the API call was successful
	Success SiteWANNewResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteWANNewResponseEnvelopeJSON    `json:"-"`
}

func (*SiteWANNewResponseEnvelope) UnmarshalJSON

func (r *SiteWANNewResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteWANNewResponseEnvelopeSuccess

type SiteWANNewResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteWANNewResponseEnvelopeSuccessTrue SiteWANNewResponseEnvelopeSuccess = true
)

func (SiteWANNewResponseEnvelopeSuccess) IsKnown

type SiteWANService

type SiteWANService struct {
	Options []option.RequestOption
}

SiteWANService contains methods and other services that help with interacting with the cloudflare API. Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewSiteWANService method instead.

func NewSiteWANService

func NewSiteWANService(opts ...option.RequestOption) (r *SiteWANService)

NewSiteWANService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.

func (*SiteWANService) Delete

func (r *SiteWANService) Delete(ctx context.Context, siteID string, wanID string, params SiteWANDeleteParams, opts ...option.RequestOption) (res *WAN, err error)

Remove a specific WAN.

func (*SiteWANService) Get

func (r *SiteWANService) Get(ctx context.Context, siteID string, wanID string, query SiteWANGetParams, opts ...option.RequestOption) (res *WAN, err error)

Get a specific WAN.

func (*SiteWANService) List

func (r *SiteWANService) List(ctx context.Context, siteID string, query SiteWANListParams, opts ...option.RequestOption) (res *pagination.SinglePage[WAN], err error)

Lists WANs associated with an account and site.

func (*SiteWANService) ListAutoPaging added in v2.1.0

Lists WANs associated with an account and site.

func (*SiteWANService) New

func (r *SiteWANService) New(ctx context.Context, siteID string, params SiteWANNewParams, opts ...option.RequestOption) (res *[]WAN, err error)

Creates a new WAN.

func (*SiteWANService) Update

func (r *SiteWANService) Update(ctx context.Context, siteID string, wanID string, params SiteWANUpdateParams, opts ...option.RequestOption) (res *WAN, err error)

Update a specific WAN.

type SiteWANUpdateParams

type SiteWANUpdateParams struct {
	// Identifier
	AccountID param.Field[string] `path:"account_id,required"`
	Name      param.Field[string] `json:"name"`
	Physport  param.Field[int64]  `json:"physport"`
	Priority  param.Field[int64]  `json:"priority"`
	// (optional) if omitted, use DHCP. Submit secondary_address when site is in high
	// availability mode.
	StaticAddressing param.Field[WANStaticAddressingParam] `json:"static_addressing"`
	// VLAN port number.
	VlanTag param.Field[int64] `json:"vlan_tag"`
}

func (SiteWANUpdateParams) MarshalJSON

func (r SiteWANUpdateParams) MarshalJSON() (data []byte, err error)

type SiteWANUpdateResponseEnvelope

type SiteWANUpdateResponseEnvelope struct {
	Errors   []shared.ResponseInfo `json:"errors,required"`
	Messages []shared.ResponseInfo `json:"messages,required"`
	Result   WAN                   `json:"result,required"`
	// Whether the API call was successful
	Success SiteWANUpdateResponseEnvelopeSuccess `json:"success,required"`
	JSON    siteWANUpdateResponseEnvelopeJSON    `json:"-"`
}

func (*SiteWANUpdateResponseEnvelope) UnmarshalJSON

func (r *SiteWANUpdateResponseEnvelope) UnmarshalJSON(data []byte) (err error)

type SiteWANUpdateResponseEnvelopeSuccess

type SiteWANUpdateResponseEnvelopeSuccess bool

Whether the API call was successful

const (
	SiteWANUpdateResponseEnvelopeSuccessTrue SiteWANUpdateResponseEnvelopeSuccess = true
)

func (SiteWANUpdateResponseEnvelopeSuccess) IsKnown

type SubnetUnion

type SubnetUnion interface {
	ImplementsMagicTransitSubnetUnion()
}

A valid IPv4 address.

Union satisfied by shared.UnionString or shared.UnionString.

type SubnetUnionParam

type SubnetUnionParam interface {
	ImplementsMagicTransitSubnetUnionParam()
}

A valid IPv4 address.

Satisfied by shared.UnionString, shared.UnionString.

type WAN

type WAN struct {
	// Identifier
	ID       string `json:"id"`
	Name     string `json:"name"`
	Physport int64  `json:"physport"`
	// Priority of WAN for traffic loadbalancing.
	Priority int64 `json:"priority"`
	// Identifier
	SiteID string `json:"site_id"`
	// (optional) if omitted, use DHCP. Submit secondary_address when site is in high
	// availability mode.
	StaticAddressing WANStaticAddressing `json:"static_addressing"`
	// VLAN port number.
	VlanTag int64   `json:"vlan_tag"`
	JSON    wanJSON `json:"-"`
}

func (*WAN) UnmarshalJSON

func (r *WAN) UnmarshalJSON(data []byte) (err error)

type WANStaticAddressing

type WANStaticAddressing struct {
	// A valid CIDR notation representing an IP range.
	Address string `json:"address,required"`
	// A valid IPv4 address.
	GatewayAddress string `json:"gateway_address,required"`
	// A valid CIDR notation representing an IP range.
	SecondaryAddress string                  `json:"secondary_address"`
	JSON             wanStaticAddressingJSON `json:"-"`
}

(optional) if omitted, use DHCP. Submit secondary_address when site is in high availability mode.

func (*WANStaticAddressing) UnmarshalJSON

func (r *WANStaticAddressing) UnmarshalJSON(data []byte) (err error)

type WANStaticAddressingParam

type WANStaticAddressingParam struct {
	// A valid CIDR notation representing an IP range.
	Address param.Field[string] `json:"address,required"`
	// A valid IPv4 address.
	GatewayAddress param.Field[string] `json:"gateway_address,required"`
	// A valid CIDR notation representing an IP range.
	SecondaryAddress param.Field[string] `json:"secondary_address"`
}

(optional) if omitted, use DHCP. Submit secondary_address when site is in high availability mode.

func (WANStaticAddressingParam) MarshalJSON

func (r WANStaticAddressingParam) MarshalJSON() (data []byte, err error)

Jump to

Keyboard shortcuts

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