s2s_vpn

package
v1.0.0-beta.35 Latest Latest
Warning

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

Go to latest
Published: Sep 15, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package s2s_vpn provides methods and message types of the s2s_vpn v1alpha1 API.

Index

Constants

View Source
const (
	BgpSessionStatusUnknownStatus = BgpSessionStatus("unknown_status")
	BgpSessionStatusUp            = BgpSessionStatus("up")
	BgpSessionStatusDown          = BgpSessionStatus("down")
	BgpSessionStatusDisabled      = BgpSessionStatus("disabled")
)
View Source
const (
	ConnectionDhGroupUnknownDhgroup = ConnectionDhGroup("unknown_dhgroup")
	ConnectionDhGroupModp2048       = ConnectionDhGroup("modp2048")
	ConnectionDhGroupModp3072       = ConnectionDhGroup("modp3072")
	ConnectionDhGroupModp4096       = ConnectionDhGroup("modp4096")
	ConnectionDhGroupEcp256         = ConnectionDhGroup("ecp256")
	ConnectionDhGroupEcp384         = ConnectionDhGroup("ecp384")
	ConnectionDhGroupEcp521         = ConnectionDhGroup("ecp521")
	ConnectionDhGroupCurve25519     = ConnectionDhGroup("curve25519")
)
View Source
const (
	ConnectionEncryptionUnknownEncryption = ConnectionEncryption("unknown_encryption")
	ConnectionEncryptionAes128            = ConnectionEncryption("aes128")
	ConnectionEncryptionAes192            = ConnectionEncryption("aes192")
	ConnectionEncryptionAes256            = ConnectionEncryption("aes256")
	ConnectionEncryptionAes128gcm         = ConnectionEncryption("aes128gcm")
	ConnectionEncryptionAes192gcm         = ConnectionEncryption("aes192gcm")
	ConnectionEncryptionAes256gcm         = ConnectionEncryption("aes256gcm")
	ConnectionEncryptionAes128ccm         = ConnectionEncryption("aes128ccm")
	ConnectionEncryptionAes256ccm         = ConnectionEncryption("aes256ccm")
	ConnectionEncryptionChacha20poly1305  = ConnectionEncryption("chacha20poly1305")
)
View Source
const (
	ConnectionInitiationPolicyUnknownInitiationPolicy = ConnectionInitiationPolicy("unknown_initiation_policy")
	ConnectionInitiationPolicyVpnGateway              = ConnectionInitiationPolicy("vpn_gateway")
	ConnectionInitiationPolicyCustomerGateway         = ConnectionInitiationPolicy("customer_gateway")
)
View Source
const (
	ConnectionIntegrityUnknownIntegrity = ConnectionIntegrity("unknown_integrity")
	ConnectionIntegritySha256           = ConnectionIntegrity("sha256")
	ConnectionIntegritySha384           = ConnectionIntegrity("sha384")
	ConnectionIntegritySha512           = ConnectionIntegrity("sha512")
)
View Source
const (
	ConnectionStatusUnknownStatus       = ConnectionStatus("unknown_status")
	ConnectionStatusActive              = ConnectionStatus("active")
	ConnectionStatusLimitedConnectivity = ConnectionStatus("limited_connectivity")
	ConnectionStatusDown                = ConnectionStatus("down")
	ConnectionStatusLocked              = ConnectionStatus("locked")
)
View Source
const (
	CreateConnectionRequestInitiationPolicyUnknownInitiationPolicy = CreateConnectionRequestInitiationPolicy("unknown_initiation_policy")
	CreateConnectionRequestInitiationPolicyVpnGateway              = CreateConnectionRequestInitiationPolicy("vpn_gateway")
	CreateConnectionRequestInitiationPolicyCustomerGateway         = CreateConnectionRequestInitiationPolicy("customer_gateway")
)
View Source
const (
	ListConnectionsRequestOrderByCreatedAtAsc  = ListConnectionsRequestOrderBy("created_at_asc")
	ListConnectionsRequestOrderByCreatedAtDesc = ListConnectionsRequestOrderBy("created_at_desc")
	ListConnectionsRequestOrderByNameAsc       = ListConnectionsRequestOrderBy("name_asc")
	ListConnectionsRequestOrderByNameDesc      = ListConnectionsRequestOrderBy("name_desc")
	ListConnectionsRequestOrderByStatusAsc     = ListConnectionsRequestOrderBy("status_asc")
	ListConnectionsRequestOrderByStatusDesc    = ListConnectionsRequestOrderBy("status_desc")
)
View Source
const (
	ListCustomerGatewaysRequestOrderByCreatedAtAsc  = ListCustomerGatewaysRequestOrderBy("created_at_asc")
	ListCustomerGatewaysRequestOrderByCreatedAtDesc = ListCustomerGatewaysRequestOrderBy("created_at_desc")
	ListCustomerGatewaysRequestOrderByNameAsc       = ListCustomerGatewaysRequestOrderBy("name_asc")
	ListCustomerGatewaysRequestOrderByNameDesc      = ListCustomerGatewaysRequestOrderBy("name_desc")
)
View Source
const (
	ListRoutingPoliciesRequestOrderByCreatedAtAsc  = ListRoutingPoliciesRequestOrderBy("created_at_asc")
	ListRoutingPoliciesRequestOrderByCreatedAtDesc = ListRoutingPoliciesRequestOrderBy("created_at_desc")
	ListRoutingPoliciesRequestOrderByNameAsc       = ListRoutingPoliciesRequestOrderBy("name_asc")
	ListRoutingPoliciesRequestOrderByNameDesc      = ListRoutingPoliciesRequestOrderBy("name_desc")
)
View Source
const (
	ListVpnGatewaysRequestOrderByCreatedAtAsc  = ListVpnGatewaysRequestOrderBy("created_at_asc")
	ListVpnGatewaysRequestOrderByCreatedAtDesc = ListVpnGatewaysRequestOrderBy("created_at_desc")
	ListVpnGatewaysRequestOrderByNameAsc       = ListVpnGatewaysRequestOrderBy("name_asc")
	ListVpnGatewaysRequestOrderByNameDesc      = ListVpnGatewaysRequestOrderBy("name_desc")
	ListVpnGatewaysRequestOrderByTypeAsc       = ListVpnGatewaysRequestOrderBy("type_asc")
	ListVpnGatewaysRequestOrderByTypeDesc      = ListVpnGatewaysRequestOrderBy("type_desc")
	ListVpnGatewaysRequestOrderByStatusAsc     = ListVpnGatewaysRequestOrderBy("status_asc")
	ListVpnGatewaysRequestOrderByStatusDesc    = ListVpnGatewaysRequestOrderBy("status_desc")
)
View Source
const (
	TunnelStatusUnknownTunnelStatus = TunnelStatus("unknown_tunnel_status")
	TunnelStatusUp                  = TunnelStatus("up")
	TunnelStatusDown                = TunnelStatus("down")
)
View Source
const (
	VpnGatewayStatusUnknownStatus  = VpnGatewayStatus("unknown_status")
	VpnGatewayStatusConfiguring    = VpnGatewayStatus("configuring")
	VpnGatewayStatusFailed         = VpnGatewayStatus("failed")
	VpnGatewayStatusProvisioning   = VpnGatewayStatus("provisioning")
	VpnGatewayStatusActive         = VpnGatewayStatus("active")
	VpnGatewayStatusDeprovisioning = VpnGatewayStatus("deprovisioning")
	VpnGatewayStatusLocked         = VpnGatewayStatus("locked")
)

Variables

This section is empty.

Functions

This section is empty.

Types

type API

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

This API allows you to manage your Site-to-Site VPN.

func NewAPI

func NewAPI(client *scw.Client) *API

NewAPI returns a API object from a Scaleway client.

func (*API) CreateConnection

func (s *API) CreateConnection(req *CreateConnectionRequest, opts ...scw.RequestOption) (*CreateConnectionResponse, error)

CreateConnection: Create a connection.

func (*API) CreateCustomerGateway

func (s *API) CreateCustomerGateway(req *CreateCustomerGatewayRequest, opts ...scw.RequestOption) (*CustomerGateway, error)

CreateCustomerGateway: Create a customer gateway.

func (*API) CreateRoutingPolicy

func (s *API) CreateRoutingPolicy(req *CreateRoutingPolicyRequest, opts ...scw.RequestOption) (*RoutingPolicy, error)

CreateRoutingPolicy: Create a routing policy. Routing policies allow you to set IP prefix filters to define the incoming route announcements to accept from the customer gateway, and the outgoing routes to announce to the customer gateway.

func (*API) CreateVpnGateway

func (s *API) CreateVpnGateway(req *CreateVpnGatewayRequest, opts ...scw.RequestOption) (*VpnGateway, error)

CreateVpnGateway: Create VPN gateway.

func (*API) DeleteConnection

func (s *API) DeleteConnection(req *DeleteConnectionRequest, opts ...scw.RequestOption) error

DeleteConnection: Delete an existing connection, specified by its connection ID.

func (*API) DeleteCustomerGateway

func (s *API) DeleteCustomerGateway(req *DeleteCustomerGatewayRequest, opts ...scw.RequestOption) error

DeleteCustomerGateway: Delete an existing customer gateway, specified by its customer gateway ID.

func (*API) DeleteRoutingPolicy

func (s *API) DeleteRoutingPolicy(req *DeleteRoutingPolicyRequest, opts ...scw.RequestOption) error

DeleteRoutingPolicy: Delete an existing routing policy, specified by its routing policy ID.

func (*API) DeleteVpnGateway

func (s *API) DeleteVpnGateway(req *DeleteVpnGatewayRequest, opts ...scw.RequestOption) (*VpnGateway, error)

DeleteVpnGateway: Delete an existing VPN gateway, specified by its VPN gateway ID.

func (*API) DetachRoutingPolicy

func (s *API) DetachRoutingPolicy(req *DetachRoutingPolicyRequest, opts ...scw.RequestOption) (*Connection, error)

DetachRoutingPolicy: Detach an existing routing policy from a connection, specified by its connection ID.

func (*API) DisableRoutePropagation

func (s *API) DisableRoutePropagation(req *DisableRoutePropagationRequest, opts ...scw.RequestOption) (*Connection, error)

DisableRoutePropagation: Prevent any prefixes from being announced in the BGP session. Traffic will not be able to flow over the VPN Gateway until route propagation is re-enabled.

func (*API) EnableRoutePropagation

func (s *API) EnableRoutePropagation(req *EnableRoutePropagationRequest, opts ...scw.RequestOption) (*Connection, error)

EnableRoutePropagation: Enable all allowed prefixes (defined in a routing policy) to be announced in the BGP session. This allows traffic to flow between the attached VPC and the on-premises infrastructure along the announced routes. Note that by default, even when route propagation is enabled, all routes are blocked. It is essential to attach a routing policy to define the ranges of routes to announce.

func (*API) GetConnection

func (s *API) GetConnection(req *GetConnectionRequest, opts ...scw.RequestOption) (*Connection, error)

GetConnection: Get a connection for the given connection ID. The response object includes information about the connection's various configuration details.

func (*API) GetCustomerGateway

func (s *API) GetCustomerGateway(req *GetCustomerGatewayRequest, opts ...scw.RequestOption) (*CustomerGateway, error)

GetCustomerGateway: Get a customer gateway for the given customer gateway ID.

func (*API) GetRoutingPolicy

func (s *API) GetRoutingPolicy(req *GetRoutingPolicyRequest, opts ...scw.RequestOption) (*RoutingPolicy, error)

GetRoutingPolicy: Get a routing policy for the given routing policy ID. The response object gives information including the policy's name, tags and prefix filters.

func (*API) GetVpnGateway

func (s *API) GetVpnGateway(req *GetVpnGatewayRequest, opts ...scw.RequestOption) (*VpnGateway, error)

GetVpnGateway: Get a VPN gateway for the given VPN gateway ID.

func (*API) ListConnections

func (s *API) ListConnections(req *ListConnectionsRequest, opts ...scw.RequestOption) (*ListConnectionsResponse, error)

ListConnections: List all your connections. A number of filters are available, including Project ID, name, tags and status.

func (*API) ListCustomerGateways

func (s *API) ListCustomerGateways(req *ListCustomerGatewaysRequest, opts ...scw.RequestOption) (*ListCustomerGatewaysResponse, error)

ListCustomerGateways: List all your customer gateways. A number of filters are available, including Project ID, name, and tags.

func (*API) ListRoutingPolicies

func (s *API) ListRoutingPolicies(req *ListRoutingPoliciesRequest, opts ...scw.RequestOption) (*ListRoutingPoliciesResponse, error)

ListRoutingPolicies: List all routing policies in a given region. A routing policy can be attached to one or multiple connections (S2S VPN connections).

func (*API) ListVpnGatewayTypes

func (s *API) ListVpnGatewayTypes(req *ListVpnGatewayTypesRequest, opts ...scw.RequestOption) (*ListVpnGatewayTypesResponse, error)

ListVpnGatewayTypes: List the different VPN gateway commercial offer types available at Scaleway. The response is an array of objects describing the name and technical details of each available VPN gateway type.

func (*API) ListVpnGateways

func (s *API) ListVpnGateways(req *ListVpnGatewaysRequest, opts ...scw.RequestOption) (*ListVpnGatewaysResponse, error)

ListVpnGateways: List all your VPN gateways. A number of filters are available, including Project ID, name, tags and status.

func (*API) Regions

func (s *API) Regions() []scw.Region

func (*API) RenewConnectionPsk

func (s *API) RenewConnectionPsk(req *RenewConnectionPskRequest, opts ...scw.RequestOption) (*RenewConnectionPskResponse, error)

RenewConnectionPsk: Renew pre-shared key for a given connection.

func (*API) SetRoutingPolicy

func (s *API) SetRoutingPolicy(req *SetRoutingPolicyRequest, opts ...scw.RequestOption) (*Connection, error)

SetRoutingPolicy: Set a new routing policy on a connection, overriding the existing one if present, specified by its connection ID.

func (*API) UpdateConnection

func (s *API) UpdateConnection(req *UpdateConnectionRequest, opts ...scw.RequestOption) (*Connection, error)

UpdateConnection: Update an existing connection, specified by its connection ID.

func (*API) UpdateCustomerGateway

func (s *API) UpdateCustomerGateway(req *UpdateCustomerGatewayRequest, opts ...scw.RequestOption) (*CustomerGateway, error)

UpdateCustomerGateway: Update an existing customer gateway, specified by its customer gateway ID. You can update its name, tags, public IPv4 & IPv6 address and AS Number.

func (*API) UpdateRoutingPolicy

func (s *API) UpdateRoutingPolicy(req *UpdateRoutingPolicyRequest, opts ...scw.RequestOption) (*RoutingPolicy, error)

UpdateRoutingPolicy: Update an existing routing policy, specified by its routing policy ID. Its name, tags and incoming/outgoing prefix filters can be updated.

func (*API) UpdateVpnGateway

func (s *API) UpdateVpnGateway(req *UpdateVpnGatewayRequest, opts ...scw.RequestOption) (*VpnGateway, error)

UpdateVpnGateway: Update an existing VPN gateway, specified by its VPN gateway ID. Only its name and tags can be updated.

type BgpSession

type BgpSession struct {
	RoutingPolicyID string `json:"routing_policy_id"`

	PrivateIP scw.IPNet `json:"private_ip"`
}

BgpSession: bgp session.

type BgpSessionStatus

type BgpSessionStatus string

func (BgpSessionStatus) MarshalJSON

func (enum BgpSessionStatus) MarshalJSON() ([]byte, error)

func (BgpSessionStatus) String

func (enum BgpSessionStatus) String() string

func (*BgpSessionStatus) UnmarshalJSON

func (enum *BgpSessionStatus) UnmarshalJSON(data []byte) error

func (BgpSessionStatus) Values

func (enum BgpSessionStatus) Values() []BgpSessionStatus

type Connection

type Connection struct {
	// ID: unique identifier of the connection.
	ID string `json:"id"`

	// ProjectID: project ID.
	ProjectID string `json:"project_id"`

	// OrganizationID: organization ID.
	OrganizationID string `json:"organization_id"`

	// Name: name of the connection.
	Name string `json:"name"`

	// Tags: list of tags applied to the connection.
	Tags []string `json:"tags"`

	// CreatedAt: creation date of the connection.
	CreatedAt *time.Time `json:"created_at"`

	// UpdatedAt: last modification date of the connection.
	UpdatedAt *time.Time `json:"updated_at"`

	// Status: status of the connection.
	// Default value: unknown_status
	Status ConnectionStatus `json:"status"`

	// InitiationPolicy: who initiates the IPsec tunnel.
	// Default value: unknown_initiation_policy
	InitiationPolicy ConnectionInitiationPolicy `json:"initiation_policy"`

	// Ikev2Ciphers: list of IKE v2 ciphers proposed for the IPsec tunnel.
	Ikev2Ciphers []*ConnectionCipher `json:"ikev2_ciphers"`

	// EspCiphers: list of ESP ciphers proposed for the IPsec tunnel.
	EspCiphers []*ConnectionCipher `json:"esp_ciphers"`

	// RoutePropagationEnabled: defines whether route propagation is enabled or not.
	RoutePropagationEnabled bool `json:"route_propagation_enabled"`

	// VpnGatewayID: ID of the VPN gateway attached to the connection.
	VpnGatewayID string `json:"vpn_gateway_id"`

	// CustomerGatewayID: ID of the customer gateway attached to the connection.
	CustomerGatewayID string `json:"customer_gateway_id"`

	// TunnelStatusIPv4: status of the IPv4 IPsec tunnel.
	// Default value: unknown_tunnel_status
	TunnelStatusIPv4 TunnelStatus `json:"tunnel_status_ipv4"`

	// TunnelStatusIPv6: status of the IPv6 IPsec tunnel.
	// Default value: unknown_tunnel_status
	TunnelStatusIPv6 TunnelStatus `json:"tunnel_status_ipv6"`

	// BgpStatusIPv4: status of the BGP IPv4 session.
	// Default value: unknown_status
	BgpStatusIPv4 BgpSessionStatus `json:"bgp_status_ipv4"`

	// BgpStatusIPv6: status of the BGP IPv6 session.
	// Default value: unknown_status
	BgpStatusIPv6 BgpSessionStatus `json:"bgp_status_ipv6"`

	// BgpSessionIPv4: bGP IPv4 session, including status, interco private IPv4 subnet and attached routing policy.
	BgpSessionIPv4 *BgpSession `json:"bgp_session_ipv4"`

	// BgpSessionIPv6: bGP IPv6 session, including status, interco private IPv6 subnet and attached routing policy.
	BgpSessionIPv6 *BgpSession `json:"bgp_session_ipv6"`

	// Region: region of the connection.
	Region scw.Region `json:"region"`
}

Connection: connection.

type ConnectionCipher

type ConnectionCipher struct {
	// Encryption: default value: unknown_encryption
	Encryption ConnectionEncryption `json:"encryption"`

	// Integrity: default value: unknown_integrity
	Integrity *ConnectionIntegrity `json:"integrity"`

	// DhGroup: default value: unknown_dhgroup
	DhGroup *ConnectionDhGroup `json:"dh_group"`
}

ConnectionCipher: connection cipher.

type ConnectionDhGroup

type ConnectionDhGroup string

func (ConnectionDhGroup) MarshalJSON

func (enum ConnectionDhGroup) MarshalJSON() ([]byte, error)

func (ConnectionDhGroup) String

func (enum ConnectionDhGroup) String() string

func (*ConnectionDhGroup) UnmarshalJSON

func (enum *ConnectionDhGroup) UnmarshalJSON(data []byte) error

func (ConnectionDhGroup) Values

func (enum ConnectionDhGroup) Values() []ConnectionDhGroup

type ConnectionEncryption

type ConnectionEncryption string

func (ConnectionEncryption) MarshalJSON

func (enum ConnectionEncryption) MarshalJSON() ([]byte, error)

func (ConnectionEncryption) String

func (enum ConnectionEncryption) String() string

func (*ConnectionEncryption) UnmarshalJSON

func (enum *ConnectionEncryption) UnmarshalJSON(data []byte) error

func (ConnectionEncryption) Values

type ConnectionInitiationPolicy

type ConnectionInitiationPolicy string

func (ConnectionInitiationPolicy) MarshalJSON

func (enum ConnectionInitiationPolicy) MarshalJSON() ([]byte, error)

func (ConnectionInitiationPolicy) String

func (enum ConnectionInitiationPolicy) String() string

func (*ConnectionInitiationPolicy) UnmarshalJSON

func (enum *ConnectionInitiationPolicy) UnmarshalJSON(data []byte) error

func (ConnectionInitiationPolicy) Values

type ConnectionIntegrity

type ConnectionIntegrity string

func (ConnectionIntegrity) MarshalJSON

func (enum ConnectionIntegrity) MarshalJSON() ([]byte, error)

func (ConnectionIntegrity) String

func (enum ConnectionIntegrity) String() string

func (*ConnectionIntegrity) UnmarshalJSON

func (enum *ConnectionIntegrity) UnmarshalJSON(data []byte) error

func (ConnectionIntegrity) Values

func (enum ConnectionIntegrity) Values() []ConnectionIntegrity

type ConnectionStatus

type ConnectionStatus string

func (ConnectionStatus) MarshalJSON

func (enum ConnectionStatus) MarshalJSON() ([]byte, error)

func (ConnectionStatus) String

func (enum ConnectionStatus) String() string

func (*ConnectionStatus) UnmarshalJSON

func (enum *ConnectionStatus) UnmarshalJSON(data []byte) error

func (ConnectionStatus) Values

func (enum ConnectionStatus) Values() []ConnectionStatus

type CreateConnectionRequest

type CreateConnectionRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ProjectID: ID of the Project to create the connection in.
	ProjectID string `json:"project_id"`

	// Name: name of the connection.
	Name string `json:"name"`

	// Tags: list of tags to apply to the connection.
	Tags []string `json:"tags"`

	// InitiationPolicy: who initiates the IPsec tunnel.
	// Default value: unknown_initiation_policy
	InitiationPolicy CreateConnectionRequestInitiationPolicy `json:"initiation_policy"`

	// Ikev2Ciphers: list of IKE v2 ciphers proposed for the IPsec tunnel.
	Ikev2Ciphers []*ConnectionCipher `json:"ikev2_ciphers"`

	// EspCiphers: list of ESP ciphers proposed for the IPsec tunnel.
	EspCiphers []*ConnectionCipher `json:"esp_ciphers"`

	// EnableRoutePropagation: defines whether route propagation is enabled or not.
	EnableRoutePropagation bool `json:"enable_route_propagation"`

	// VpnGatewayID: ID of the VPN gateway to attach to the connection.
	VpnGatewayID string `json:"vpn_gateway_id"`

	// CustomerGatewayID: ID of the customer gateway to attach to the connection.
	CustomerGatewayID string `json:"customer_gateway_id"`

	// BgpConfigIPv4: bGP config of IPv4 session, including interco private IPv4 subnet (first IP assigned to the VPN Gateway, second IP to the Customer Gateway) and attached routing policy.
	BgpConfigIPv4 *CreateConnectionRequestBgpConfig `json:"bgp_config_ipv4,omitempty"`

	// BgpConfigIPv6: bGP config of IPv6 session, including interco private IPv6 subnet (first IP assigned to the VPN Gateway, second IP to the Customer Gateway) and attached routing policy.
	BgpConfigIPv6 *CreateConnectionRequestBgpConfig `json:"bgp_config_ipv6,omitempty"`
}

CreateConnectionRequest: create connection request.

type CreateConnectionRequestBgpConfig

type CreateConnectionRequestBgpConfig struct {
	RoutingPolicyID string `json:"routing_policy_id"`
}

CreateConnectionRequestBgpConfig: create connection request bgp config.

type CreateConnectionRequestInitiationPolicy

type CreateConnectionRequestInitiationPolicy string

func (CreateConnectionRequestInitiationPolicy) MarshalJSON

func (enum CreateConnectionRequestInitiationPolicy) MarshalJSON() ([]byte, error)

func (CreateConnectionRequestInitiationPolicy) String

func (*CreateConnectionRequestInitiationPolicy) UnmarshalJSON

func (enum *CreateConnectionRequestInitiationPolicy) UnmarshalJSON(data []byte) error

func (CreateConnectionRequestInitiationPolicy) Values

type CreateConnectionResponse

type CreateConnectionResponse struct {
	// Connection: this connection.
	Connection *Connection `json:"connection"`

	// PreSharedKey: new PSK generated for this connection.
	PreSharedKey string `json:"pre_shared_key"`
}

CreateConnectionResponse: create connection response.

type CreateCustomerGatewayRequest

type CreateCustomerGatewayRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ProjectID: ID of the Project to create the customer gateway in.
	ProjectID string `json:"project_id"`

	// Name: name of the customer gateway.
	Name string `json:"name"`

	// Tags: list of tags to apply to the customer gateway.
	Tags []string `json:"tags"`

	// IPv4Public: public IPv4 address of the customer gateway.
	IPv4Public *net.IP `json:"ipv4_public,omitempty"`

	// IPv6Public: public IPv6 address of the customer gateway.
	IPv6Public *net.IP `json:"ipv6_public,omitempty"`

	// Asn: aS Number of the customer gateway.
	Asn uint32 `json:"asn"`
}

CreateCustomerGatewayRequest: create customer gateway request.

type CreateRoutingPolicyRequest

type CreateRoutingPolicyRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ProjectID: ID of the Project to create the routing policy in.
	ProjectID string `json:"project_id"`

	// Name: name of the routing policy.
	Name string `json:"name"`

	// Tags: list of tags to apply to the routing policy.
	Tags []string `json:"tags"`

	// IsIPv6: IP prefixes version of the routing policy.
	IsIPv6 bool `json:"is_ipv6"`

	// PrefixFilterIn: IP prefixes to accept from the peer (ranges of route announcements to accept).
	PrefixFilterIn []scw.IPNet `json:"prefix_filter_in"`

	// PrefixFilterOut: IP prefix filters to advertise to the peer (ranges of routes to advertise).
	PrefixFilterOut []scw.IPNet `json:"prefix_filter_out"`
}

CreateRoutingPolicyRequest: create routing policy request.

type CreateVpnGatewayRequest

type CreateVpnGatewayRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ProjectID: ID of the Project to create the VPN gateway in.
	ProjectID string `json:"project_id"`

	// Name: name of the VPN gateway.
	Name string `json:"name"`

	// Tags: list of tags to apply to the VPN gateway.
	Tags []string `json:"tags"`

	// GatewayType: vPN gateway type (commercial offer type).
	GatewayType string `json:"gateway_type"`

	// PublicConfig: public endpoint configuration of the VPN gateway.
	// Precisely one of PublicConfig must be set.
	PublicConfig *CreateVpnGatewayRequestPublicConfig `json:"public_config,omitempty"`

	// PrivateNetworkID: ID of the Private Network to attach to the VPN gateway.
	PrivateNetworkID string `json:"private_network_id"`

	// IpamPrivateIPv4ID: ID of the IPAM private IPv4 address to attach to the VPN gateway.
	IpamPrivateIPv4ID *string `json:"ipam_private_ipv4_id,omitempty"`

	// IpamPrivateIPv6ID: ID of the IPAM private IPv6 address to attach to the VPN gateway.
	IpamPrivateIPv6ID *string `json:"ipam_private_ipv6_id,omitempty"`

	// Zone: availability Zone where the VPN gateway should be provisioned. If no zone is specified, the VPN gateway will be automatically placed.
	Zone *scw.Zone `json:"zone,omitempty"`
}

CreateVpnGatewayRequest: create vpn gateway request.

type CreateVpnGatewayRequestPublicConfig

type CreateVpnGatewayRequestPublicConfig struct {
	IpamIPv4ID *string `json:"ipam_ipv4_id"`

	IpamIPv6ID *string `json:"ipam_ipv6_id"`
}

CreateVpnGatewayRequestPublicConfig: create vpn gateway request public config.

type CustomerGateway

type CustomerGateway struct {
	// ID: unique identifier of the customer gateway.
	ID string `json:"id"`

	// ProjectID: project ID.
	ProjectID string `json:"project_id"`

	// OrganizationID: organization ID.
	OrganizationID string `json:"organization_id"`

	// Name: name of the customer gateway.
	Name string `json:"name"`

	// Tags: list of tags applied to the customer gateway.
	Tags []string `json:"tags"`

	// CreatedAt: creation date of the customer gateway.
	CreatedAt *time.Time `json:"created_at"`

	// UpdatedAt: last modification date of the customer gateway.
	UpdatedAt *time.Time `json:"updated_at"`

	// PublicIPv4: public IPv4 address of the customer gateway.
	PublicIPv4 *net.IP `json:"public_ipv4"`

	// PublicIPv6: public IPv6 address of the customer gateway.
	PublicIPv6 *net.IP `json:"public_ipv6"`

	// Asn: aS Number of the customer gateway.
	Asn uint32 `json:"asn"`
}

CustomerGateway: customer gateway.

type DeleteConnectionRequest

type DeleteConnectionRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ConnectionID: ID of the connection to delete.
	ConnectionID string `json:"-"`
}

DeleteConnectionRequest: delete connection request.

type DeleteCustomerGatewayRequest

type DeleteCustomerGatewayRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// GatewayID: ID of the customer gateway to delete.
	GatewayID string `json:"-"`
}

DeleteCustomerGatewayRequest: delete customer gateway request.

type DeleteRoutingPolicyRequest

type DeleteRoutingPolicyRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// RoutingPolicyID: ID of the routing policy to delete.
	RoutingPolicyID string `json:"-"`
}

DeleteRoutingPolicyRequest: delete routing policy request.

type DeleteVpnGatewayRequest

type DeleteVpnGatewayRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// GatewayID: ID of the VPN gateway to delete.
	GatewayID string `json:"-"`
}

DeleteVpnGatewayRequest: delete vpn gateway request.

type DetachRoutingPolicyRequest

type DetachRoutingPolicyRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ConnectionID: ID of the connection from which routing policy is being detached.
	ConnectionID string `json:"-"`

	// RoutingPolicyV4: ID of the routing policy to detach from the BGP IPv4 session.
	// Precisely one of RoutingPolicyV4, RoutingPolicyV6 must be set.
	RoutingPolicyV4 *string `json:"routing_policy_v4,omitempty"`

	// RoutingPolicyV6: ID of the routing policy to detach from the BGP IPv6 session.
	// Precisely one of RoutingPolicyV4, RoutingPolicyV6 must be set.
	RoutingPolicyV6 *string `json:"routing_policy_v6,omitempty"`
}

DetachRoutingPolicyRequest: detach routing policy request.

type DisableRoutePropagationRequest

type DisableRoutePropagationRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ConnectionID: ID of the connection on which to disable route propagation.
	ConnectionID string `json:"-"`
}

DisableRoutePropagationRequest: disable route propagation request.

type EnableRoutePropagationRequest

type EnableRoutePropagationRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ConnectionID: ID of the connection on which to enable route propagation.
	ConnectionID string `json:"-"`
}

EnableRoutePropagationRequest: enable route propagation request.

type GatewayType

type GatewayType struct {
	Name string `json:"name"`

	Bandwidth uint64 `json:"bandwidth"`

	AllowedConnections uint64 `json:"allowed_connections"`

	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"region"`
}

GatewayType: gateway type.

type GetConnectionRequest

type GetConnectionRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ConnectionID: ID of the requested connection.
	ConnectionID string `json:"-"`
}

GetConnectionRequest: get connection request.

type GetCustomerGatewayRequest

type GetCustomerGatewayRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// GatewayID: ID of the requested customer gateway.
	GatewayID string `json:"-"`
}

GetCustomerGatewayRequest: get customer gateway request.

type GetRoutingPolicyRequest

type GetRoutingPolicyRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// RoutingPolicyID: ID of the routing policy to get.
	RoutingPolicyID string `json:"-"`
}

GetRoutingPolicyRequest: get routing policy request.

type GetVpnGatewayRequest

type GetVpnGatewayRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// GatewayID: ID of the requested VPN gateway.
	GatewayID string `json:"-"`
}

GetVpnGatewayRequest: get vpn gateway request.

type ListConnectionsRequest

type ListConnectionsRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// Page: page number to return.
	Page *int32 `json:"-"`

	// PageSize: maximum number of connections to return per page.
	PageSize *uint32 `json:"-"`

	// OrderBy: order in which to return results.
	// Default value: created_at_asc
	OrderBy ListConnectionsRequestOrderBy `json:"-"`

	// ProjectID: project ID to filter for.
	ProjectID *string `json:"-"`

	// Name: connection name to filter for.
	Name *string `json:"-"`

	// Tags: tags to filter for.
	Tags []string `json:"-"`

	// Statuses: connection statuses to filter for.
	Statuses []ConnectionStatus `json:"-"`

	// RoutingPolicyIDs: filter for connections using these routing policies.
	RoutingPolicyIDs []string `json:"-"`

	// RoutePropagationEnabled: filter for connections with route propagation enabled.
	RoutePropagationEnabled *bool `json:"-"`

	// VpnGatewayIDs: filter for connections attached to these VPN gateways.
	VpnGatewayIDs []string `json:"-"`

	// CustomerGatewayIDs: filter for connections attached to these customer gateways.
	CustomerGatewayIDs []string `json:"-"`
}

ListConnectionsRequest: list connections request.

type ListConnectionsRequestOrderBy

type ListConnectionsRequestOrderBy string

func (ListConnectionsRequestOrderBy) MarshalJSON

func (enum ListConnectionsRequestOrderBy) MarshalJSON() ([]byte, error)

func (ListConnectionsRequestOrderBy) String

func (enum ListConnectionsRequestOrderBy) String() string

func (*ListConnectionsRequestOrderBy) UnmarshalJSON

func (enum *ListConnectionsRequestOrderBy) UnmarshalJSON(data []byte) error

func (ListConnectionsRequestOrderBy) Values

type ListConnectionsResponse

type ListConnectionsResponse struct {
	// Connections: list of connections on the current page.
	Connections []*Connection `json:"connections"`

	// TotalCount: total number of connections.
	TotalCount uint64 `json:"total_count"`
}

ListConnectionsResponse: list connections response.

func (*ListConnectionsResponse) UnsafeAppend

func (r *ListConnectionsResponse) UnsafeAppend(res any) (uint64, error)

UnsafeAppend should not be used Internal usage only

func (*ListConnectionsResponse) UnsafeGetTotalCount

func (r *ListConnectionsResponse) UnsafeGetTotalCount() uint64

UnsafeGetTotalCount should not be used Internal usage only

type ListCustomerGatewaysRequest

type ListCustomerGatewaysRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// Page: page number to return.
	Page *int32 `json:"-"`

	// PageSize: maximum number of customer gateways to return per page.
	PageSize *uint32 `json:"-"`

	// OrderBy: order in which to return results.
	// Default value: created_at_asc
	OrderBy ListCustomerGatewaysRequestOrderBy `json:"-"`

	// ProjectID: project ID to filter for.
	ProjectID *string `json:"-"`

	// Name: customer gateway name to filter for.
	Name *string `json:"-"`

	// Tags: tags to filter for.
	Tags []string `json:"-"`
}

ListCustomerGatewaysRequest: list customer gateways request.

type ListCustomerGatewaysRequestOrderBy

type ListCustomerGatewaysRequestOrderBy string

func (ListCustomerGatewaysRequestOrderBy) MarshalJSON

func (enum ListCustomerGatewaysRequestOrderBy) MarshalJSON() ([]byte, error)

func (ListCustomerGatewaysRequestOrderBy) String

func (*ListCustomerGatewaysRequestOrderBy) UnmarshalJSON

func (enum *ListCustomerGatewaysRequestOrderBy) UnmarshalJSON(data []byte) error

func (ListCustomerGatewaysRequestOrderBy) Values

type ListCustomerGatewaysResponse

type ListCustomerGatewaysResponse struct {
	// Gateways: list of customer gateways on the current page.
	Gateways []*CustomerGateway `json:"gateways"`

	// TotalCount: total number of customer gateways.
	TotalCount uint64 `json:"total_count"`
}

ListCustomerGatewaysResponse: list customer gateways response.

func (*ListCustomerGatewaysResponse) UnsafeAppend

func (r *ListCustomerGatewaysResponse) UnsafeAppend(res any) (uint64, error)

UnsafeAppend should not be used Internal usage only

func (*ListCustomerGatewaysResponse) UnsafeGetTotalCount

func (r *ListCustomerGatewaysResponse) UnsafeGetTotalCount() uint64

UnsafeGetTotalCount should not be used Internal usage only

type ListRoutingPoliciesRequest

type ListRoutingPoliciesRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// Page: page number to return.
	Page *int32 `json:"-"`

	// PageSize: maximum number of routing policies to return per page.
	PageSize *uint32 `json:"-"`

	// OrderBy: order in which to return results.
	// Default value: created_at_asc
	OrderBy ListRoutingPoliciesRequestOrderBy `json:"-"`

	// ProjectID: project ID to filter for.
	ProjectID *string `json:"-"`

	// Name: routing policy name to filter for.
	Name *string `json:"-"`

	// Tags: tags to filter for.
	Tags []string `json:"-"`

	// IPv6: filter for the routing policies based on IP prefixes version.
	IPv6 *bool `json:"-"`
}

ListRoutingPoliciesRequest: list routing policies request.

type ListRoutingPoliciesRequestOrderBy

type ListRoutingPoliciesRequestOrderBy string

func (ListRoutingPoliciesRequestOrderBy) MarshalJSON

func (enum ListRoutingPoliciesRequestOrderBy) MarshalJSON() ([]byte, error)

func (ListRoutingPoliciesRequestOrderBy) String

func (*ListRoutingPoliciesRequestOrderBy) UnmarshalJSON

func (enum *ListRoutingPoliciesRequestOrderBy) UnmarshalJSON(data []byte) error

func (ListRoutingPoliciesRequestOrderBy) Values

type ListRoutingPoliciesResponse

type ListRoutingPoliciesResponse struct {
	RoutingPolicies []*RoutingPolicy `json:"routing_policies"`

	TotalCount uint64 `json:"total_count"`
}

ListRoutingPoliciesResponse: list routing policies response.

func (*ListRoutingPoliciesResponse) UnsafeAppend

func (r *ListRoutingPoliciesResponse) UnsafeAppend(res any) (uint64, error)

UnsafeAppend should not be used Internal usage only

func (*ListRoutingPoliciesResponse) UnsafeGetTotalCount

func (r *ListRoutingPoliciesResponse) UnsafeGetTotalCount() uint64

UnsafeGetTotalCount should not be used Internal usage only

type ListVpnGatewayTypesRequest

type ListVpnGatewayTypesRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// Page: page number to return.
	Page *int32 `json:"-"`

	// PageSize: maximum number of VPN gateway types to return per page.
	PageSize *uint32 `json:"-"`
}

ListVpnGatewayTypesRequest: list vpn gateway types request.

type ListVpnGatewayTypesResponse

type ListVpnGatewayTypesResponse struct {
	// GatewayTypes: list of VPN gateway types on the current page.
	GatewayTypes []*GatewayType `json:"gateway_types"`

	// TotalCount: total number of gateway types.
	TotalCount uint64 `json:"total_count"`
}

ListVpnGatewayTypesResponse: list vpn gateway types response.

func (*ListVpnGatewayTypesResponse) UnsafeAppend

func (r *ListVpnGatewayTypesResponse) UnsafeAppend(res any) (uint64, error)

UnsafeAppend should not be used Internal usage only

func (*ListVpnGatewayTypesResponse) UnsafeGetTotalCount

func (r *ListVpnGatewayTypesResponse) UnsafeGetTotalCount() uint64

UnsafeGetTotalCount should not be used Internal usage only

type ListVpnGatewaysRequest

type ListVpnGatewaysRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// Page: page number to return.
	Page *int32 `json:"-"`

	// PageSize: maximum number of VPN gateways to return per page.
	PageSize *uint32 `json:"-"`

	// OrderBy: order in which to return results.
	// Default value: created_at_asc
	OrderBy ListVpnGatewaysRequestOrderBy `json:"-"`

	// ProjectID: project ID to filter for.
	ProjectID *string `json:"-"`

	// Name: vPN gateway name to filter for.
	Name *string `json:"-"`

	// Tags: tags to filter for.
	Tags []string `json:"-"`

	// Statuses: vPN gateway statuses to filter for.
	Statuses []VpnGatewayStatus `json:"-"`

	// GatewayTypes: filter for VPN gateways of these types.
	GatewayTypes []string `json:"-"`

	// PrivateNetworkIDs: filter for VPN gateways attached to these private networks.
	PrivateNetworkIDs []string `json:"-"`
}

ListVpnGatewaysRequest: list vpn gateways request.

type ListVpnGatewaysRequestOrderBy

type ListVpnGatewaysRequestOrderBy string

func (ListVpnGatewaysRequestOrderBy) MarshalJSON

func (enum ListVpnGatewaysRequestOrderBy) MarshalJSON() ([]byte, error)

func (ListVpnGatewaysRequestOrderBy) String

func (enum ListVpnGatewaysRequestOrderBy) String() string

func (*ListVpnGatewaysRequestOrderBy) UnmarshalJSON

func (enum *ListVpnGatewaysRequestOrderBy) UnmarshalJSON(data []byte) error

func (ListVpnGatewaysRequestOrderBy) Values

type ListVpnGatewaysResponse

type ListVpnGatewaysResponse struct {
	// Gateways: list of VPN gateways on the current page.
	Gateways []*VpnGateway `json:"gateways"`

	// TotalCount: total number of VPN gateways.
	TotalCount uint64 `json:"total_count"`
}

ListVpnGatewaysResponse: list vpn gateways response.

func (*ListVpnGatewaysResponse) UnsafeAppend

func (r *ListVpnGatewaysResponse) UnsafeAppend(res any) (uint64, error)

UnsafeAppend should not be used Internal usage only

func (*ListVpnGatewaysResponse) UnsafeGetTotalCount

func (r *ListVpnGatewaysResponse) UnsafeGetTotalCount() uint64

UnsafeGetTotalCount should not be used Internal usage only

type RenewConnectionPskRequest

type RenewConnectionPskRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ConnectionID: ID of the connection to renew the PSK.
	ConnectionID string `json:"-"`
}

RenewConnectionPskRequest: renew connection psk request.

type RenewConnectionPskResponse

type RenewConnectionPskResponse struct {
	// Connection: this connection.
	Connection *Connection `json:"connection"`

	// PreSharedKey: new PSK generated for this connection.
	PreSharedKey string `json:"pre_shared_key"`
}

RenewConnectionPskResponse: renew connection psk response.

type RoutingPolicy

type RoutingPolicy struct {
	// ID: unique identifier of the routing policy.
	ID string `json:"id"`

	// ProjectID: project ID.
	ProjectID string `json:"project_id"`

	// OrganizationID: organization ID.
	OrganizationID string `json:"organization_id"`

	// Name: name of the routing policy.
	Name string `json:"name"`

	// Tags: list of tags associated with the routing policy.
	Tags []string `json:"tags"`

	// CreatedAt: creation date of the routing policy.
	CreatedAt *time.Time `json:"created_at"`

	// UpdatedAt: last modification date of the routing policy.
	UpdatedAt *time.Time `json:"updated_at"`

	// IsIPv6: IP prefixes version of the routing policy.
	IsIPv6 bool `json:"is_ipv6"`

	// PrefixFilterIn: IP prefixes to accept from the peer (ranges of route announcements to accept).
	PrefixFilterIn []scw.IPNet `json:"prefix_filter_in"`

	// PrefixFilterOut: IP prefix filters to advertise to the peer (ranges of routes to advertise).
	PrefixFilterOut []scw.IPNet `json:"prefix_filter_out"`

	// Region: region of the routing policy.
	Region scw.Region `json:"region"`
}

RoutingPolicy: routing policy.

type SetRoutingPolicyRequest

type SetRoutingPolicyRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ConnectionID: ID of the connection whose routing policy is being updated.
	ConnectionID string `json:"-"`

	// RoutingPolicyV4: ID of the routing policy to set for the BGP IPv4 session.
	// Precisely one of RoutingPolicyV4, RoutingPolicyV6 must be set.
	RoutingPolicyV4 *string `json:"routing_policy_v4,omitempty"`

	// RoutingPolicyV6: ID of the routing policy to set for the BGP IPv6 session.
	// Precisely one of RoutingPolicyV4, RoutingPolicyV6 must be set.
	RoutingPolicyV6 *string `json:"routing_policy_v6,omitempty"`
}

SetRoutingPolicyRequest: set routing policy request.

type TunnelStatus

type TunnelStatus string

func (TunnelStatus) MarshalJSON

func (enum TunnelStatus) MarshalJSON() ([]byte, error)

func (TunnelStatus) String

func (enum TunnelStatus) String() string

func (*TunnelStatus) UnmarshalJSON

func (enum *TunnelStatus) UnmarshalJSON(data []byte) error

func (TunnelStatus) Values

func (enum TunnelStatus) Values() []TunnelStatus

type UpdateConnectionRequest

type UpdateConnectionRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// ConnectionID: ID of the connection to update.
	ConnectionID string `json:"-"`

	// Name: name of the connection.
	Name *string `json:"name,omitempty"`

	// Tags: list of tags to apply to the connection.
	Tags *[]string `json:"tags,omitempty"`

	// InitiationPolicy: who initiates the IPsec tunnel.
	// Default value: unknown_initiation_policy
	InitiationPolicy CreateConnectionRequestInitiationPolicy `json:"initiation_policy"`

	// Ikev2Ciphers: list of IKE v2 ciphers proposed for the IPsec tunnel.
	Ikev2Ciphers []*ConnectionCipher `json:"ikev2_ciphers"`

	// EspCiphers: list of ESP ciphers proposed for the IPsec tunnel.
	EspCiphers []*ConnectionCipher `json:"esp_ciphers"`
}

UpdateConnectionRequest: update connection request.

type UpdateCustomerGatewayRequest

type UpdateCustomerGatewayRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// GatewayID: ID of the customer gateway to update.
	GatewayID string `json:"-"`

	// Name: name of the customer gateway.
	Name *string `json:"name,omitempty"`

	// Tags: list of tags to apply to the customer gateway.
	Tags *[]string `json:"tags,omitempty"`

	// IPv4Public: public IPv4 address of the customer gateway.
	IPv4Public *net.IP `json:"ipv4_public,omitempty"`

	// IPv6Public: public IPv6 address of the customer gateway.
	IPv6Public *net.IP `json:"ipv6_public,omitempty"`

	// Asn: aS Number of the customer gateway.
	Asn *uint32 `json:"asn,omitempty"`
}

UpdateCustomerGatewayRequest: update customer gateway request.

type UpdateRoutingPolicyRequest

type UpdateRoutingPolicyRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// RoutingPolicyID: ID of the routing policy to update.
	RoutingPolicyID string `json:"-"`

	// Name: name of the routing policy.
	Name *string `json:"name,omitempty"`

	// Tags: list of tags to apply to the routing policy.
	Tags *[]string `json:"tags,omitempty"`

	// PrefixFilterIn: IP prefixes to accept from the peer (ranges of route announcements to accept).
	PrefixFilterIn *[]string `json:"prefix_filter_in,omitempty"`

	// PrefixFilterOut: IP prefix filters for routes to advertise to the peer (ranges of routes to advertise).
	PrefixFilterOut *[]string `json:"prefix_filter_out,omitempty"`
}

UpdateRoutingPolicyRequest: update routing policy request.

type UpdateVpnGatewayRequest

type UpdateVpnGatewayRequest struct {
	// Region: region to target. If none is passed will use default region from the config.
	Region scw.Region `json:"-"`

	// GatewayID: ID of the VPN gateway to update.
	GatewayID string `json:"-"`

	// Name: name of the VPN gateway.
	Name *string `json:"name,omitempty"`

	// Tags: list of tags to apply to the VPN Gateway.
	Tags *[]string `json:"tags,omitempty"`
}

UpdateVpnGatewayRequest: update vpn gateway request.

type VpnGateway

type VpnGateway struct {
	// ID: unique identifier of the VPN gateway.
	ID string `json:"id"`

	// ProjectID: project ID.
	ProjectID string `json:"project_id"`

	// OrganizationID: organization ID.
	OrganizationID string `json:"organization_id"`

	// Name: name of the VPN gateway.
	Name string `json:"name"`

	// Tags: list of tags applied to the VPN gateway.
	Tags []string `json:"tags"`

	// CreatedAt: creation date of the VPN gateway.
	CreatedAt *time.Time `json:"created_at"`

	// UpdatedAt: last modification date of the VPN gateway.
	UpdatedAt *time.Time `json:"updated_at"`

	// Status: status of the VPN gateway.
	// Default value: unknown_status
	Status VpnGatewayStatus `json:"status"`

	// GatewayType: gateway type of the VPN gateway.
	GatewayType string `json:"gateway_type"`

	// PublicConfig: public endpoint configuration of the VPN gateway.
	// Precisely one of PublicConfig, PrivateConfig must be set.
	PublicConfig *VpnGatewayPublicConfig `json:"public_config,omitempty"`

	// PrivateNetworkID: ID of the Private Network attached to the VPN gateway.
	PrivateNetworkID string `json:"private_network_id"`

	// Precisely one of PublicConfig, PrivateConfig must be set.
	PrivateConfig *VpnGatewayPrivateConfig `json:"private_config,omitempty"`

	// IpamPrivateIPv4ID: ID of the IPAM private IPv4 address attached to the VPN gateway.
	IpamPrivateIPv4ID string `json:"ipam_private_ipv4_id"`

	// IpamPrivateIPv6ID: ID of the IPAM private IPv6 address attached to the VPN gateway.
	IpamPrivateIPv6ID string `json:"ipam_private_ipv6_id"`

	// Asn: autonomous System Number (ASN) of the VPN gateway, used by Border Gateway Protocol (BGP) to exchange routing information with the customer gateway.
	Asn uint32 `json:"asn"`

	// Zone: zone where the VPN gateway resource is currently provisioned.
	Zone scw.Zone `json:"zone"`

	// Region: region of the VPN gateway.
	Region scw.Region `json:"region"`
}

VpnGateway: vpn gateway.

type VpnGatewayPrivateConfig

type VpnGatewayPrivateConfig struct{}

VpnGatewayPrivateConfig: vpn gateway private config.

type VpnGatewayPublicConfig

type VpnGatewayPublicConfig struct {
	IpamIPv4ID *string `json:"ipam_ipv4_id"`

	IpamIPv6ID *string `json:"ipam_ipv6_id"`
}

VpnGatewayPublicConfig: vpn gateway public config.

type VpnGatewayStatus

type VpnGatewayStatus string

func (VpnGatewayStatus) MarshalJSON

func (enum VpnGatewayStatus) MarshalJSON() ([]byte, error)

func (VpnGatewayStatus) String

func (enum VpnGatewayStatus) String() string

func (*VpnGatewayStatus) UnmarshalJSON

func (enum *VpnGatewayStatus) UnmarshalJSON(data []byte) error

func (VpnGatewayStatus) Values

func (enum VpnGatewayStatus) Values() []VpnGatewayStatus

Jump to

Keyboard shortcuts

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