ixapi

package
v0.0.0-...-edc1caf Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const AllowMemberJoiningRulePatchType = "allow"

AllowMemberJoiningRulePatchType is a polymorphic type value for AllowMemberJoiningRulePatch

View Source
const AllowMemberJoiningRuleRequestType = "allow"

AllowMemberJoiningRuleRequestType is a polymorphic type value for AllowMemberJoiningRuleRequest

View Source
const AllowMemberJoiningRuleType = "allow"

AllowMemberJoiningRuleType is a polymorphic type value for AllowMemberJoiningRule

View Source
const AllowMemberJoiningRuleUpdateType = "allow"

AllowMemberJoiningRuleUpdateType is a polymorphic type value for AllowMemberJoiningRuleUpdate

View Source
const CloudNetworkProductOfferingPatchType = "cloud_vc"

CloudNetworkProductOfferingPatchType is a polymorphic type value for CloudNetworkProductOfferingPatch

View Source
const CloudNetworkProductOfferingType = "cloud_vc"

CloudNetworkProductOfferingType is a polymorphic type value for CloudNetworkProductOffering

View Source
const CloudNetworkServiceConfigPatchType = "cloud_vc"

CloudNetworkServiceConfigPatchType is a polymorphic type value for CloudNetworkServiceConfigPatch

View Source
const CloudNetworkServiceConfigRequestType = "cloud_vc"

CloudNetworkServiceConfigRequestType is a polymorphic type value for CloudNetworkServiceConfigRequest

View Source
const CloudNetworkServiceConfigType = "cloud_vc"

CloudNetworkServiceConfigType is a polymorphic type value for CloudNetworkServiceConfig

View Source
const CloudNetworkServiceConfigUpdateType = "cloud_vc"

CloudNetworkServiceConfigUpdateType is a polymorphic type value for CloudNetworkServiceConfigUpdate

View Source
const CloudNetworkServicePatchType = "cloud_vc"

CloudNetworkServicePatchType is a polymorphic type value for CloudNetworkServicePatch

View Source
const CloudNetworkServiceRequestType = "cloud_vc"

CloudNetworkServiceRequestType is a polymorphic type value for CloudNetworkServiceRequest

View Source
const CloudNetworkServiceType = "cloud_vc"

CloudNetworkServiceType is a polymorphic type value for CloudNetworkService

View Source
const CloudNetworkServiceUpdateType = "cloud_vc"

CloudNetworkServiceUpdateType is a polymorphic type value for CloudNetworkServiceUpdate

View Source
const ConnectionProductOfferingPatchType = "connection"

ConnectionProductOfferingPatchType is a polymorphic type value for ConnectionProductOfferingPatch

View Source
const ConnectionProductOfferingType = "connection"

ConnectionProductOfferingType is a polymorphic type value for ConnectionProductOffering

View Source
const DenyMemberJoiningRulePatchType = "deny"

DenyMemberJoiningRulePatchType is a polymorphic type value for DenyMemberJoiningRulePatch

View Source
const DenyMemberJoiningRuleRequestType = "deny"

DenyMemberJoiningRuleRequestType is a polymorphic type value for DenyMemberJoiningRuleRequest

View Source
const DenyMemberJoiningRuleType = "deny"

DenyMemberJoiningRuleType is a polymorphic type value for DenyMemberJoiningRule

View Source
const DenyMemberJoiningRuleUpdateType = "deny"

DenyMemberJoiningRuleUpdateType is a polymorphic type value for DenyMemberJoiningRuleUpdate

View Source
const ExchangeLanNetworkProductOfferingPatchType = "exchange_lan"

ExchangeLanNetworkProductOfferingPatchType is a polymorphic type value for ExchangeLanNetworkProductOfferingPatch

View Source
const ExchangeLanNetworkProductOfferingType = "exchange_lan"

ExchangeLanNetworkProductOfferingType is a polymorphic type value for ExchangeLanNetworkProductOffering

View Source
const ExchangeLanNetworkServiceConfigPatchType = "exchange_lan"

ExchangeLanNetworkServiceConfigPatchType is a polymorphic type value for ExchangeLanNetworkServiceConfigPatch

View Source
const ExchangeLanNetworkServiceConfigRequestType = "exchange_lan"

ExchangeLanNetworkServiceConfigRequestType is a polymorphic type value for ExchangeLanNetworkServiceConfigRequest

View Source
const ExchangeLanNetworkServiceConfigType = "exchange_lan"

ExchangeLanNetworkServiceConfigType is a polymorphic type value for ExchangeLanNetworkServiceConfig

View Source
const ExchangeLanNetworkServiceConfigUpdateType = "exchange_lan"

ExchangeLanNetworkServiceConfigUpdateType is a polymorphic type value for ExchangeLanNetworkServiceConfigUpdate

View Source
const ExchangeLanNetworkServiceType = "exchange_lan"

ExchangeLanNetworkServiceType is a polymorphic type value for ExchangeLanNetworkService

View Source
const MP2MPNetworkProductOfferingPatchType = "mp2mp_vc"

MP2MPNetworkProductOfferingPatchType is a polymorphic type value for MP2MPNetworkProductOfferingPatch

View Source
const MP2MPNetworkProductOfferingType = "mp2mp_vc"

MP2MPNetworkProductOfferingType is a polymorphic type value for MP2MPNetworkProductOffering

View Source
const MP2MPNetworkServiceConfigPatchType = "mp2mp_vc"

MP2MPNetworkServiceConfigPatchType is a polymorphic type value for MP2MPNetworkServiceConfigPatch

View Source
const MP2MPNetworkServiceConfigRequestType = "mp2mp_vc"

MP2MPNetworkServiceConfigRequestType is a polymorphic type value for MP2MPNetworkServiceConfigRequest

View Source
const MP2MPNetworkServiceConfigType = "mp2mp_vc"

MP2MPNetworkServiceConfigType is a polymorphic type value for MP2MPNetworkServiceConfig

View Source
const MP2MPNetworkServiceConfigUpdateType = "mp2mp_vc"

MP2MPNetworkServiceConfigUpdateType is a polymorphic type value for MP2MPNetworkServiceConfigUpdate

View Source
const MP2MPNetworkServicePatchType = "mp2mp_vc"

MP2MPNetworkServicePatchType is a polymorphic type value for MP2MPNetworkServicePatch

View Source
const MP2MPNetworkServiceRequestType = "mp2mp_vc"

MP2MPNetworkServiceRequestType is a polymorphic type value for MP2MPNetworkServiceRequest

View Source
const MP2MPNetworkServiceType = "mp2mp_vc"

MP2MPNetworkServiceType is a polymorphic type value for MP2MPNetworkService

View Source
const MP2MPNetworkServiceUpdateType = "mp2mp_vc"

MP2MPNetworkServiceUpdateType is a polymorphic type value for MP2MPNetworkServiceUpdate

View Source
const P2MPNetworkProductOfferingPatchType = "p2mp_vc"

P2MPNetworkProductOfferingPatchType is a polymorphic type value for P2MPNetworkProductOfferingPatch

View Source
const P2MPNetworkProductOfferingType = "p2mp_vc"

P2MPNetworkProductOfferingType is a polymorphic type value for P2MPNetworkProductOffering

View Source
const P2MPNetworkServiceConfigPatchType = "p2mp_vc"

P2MPNetworkServiceConfigPatchType is a polymorphic type value for P2MPNetworkServiceConfigPatch

View Source
const P2MPNetworkServiceConfigRequestType = "p2mp_vc"

P2MPNetworkServiceConfigRequestType is a polymorphic type value for P2MPNetworkServiceConfigRequest

View Source
const P2MPNetworkServiceConfigType = "p2mp_vc"

P2MPNetworkServiceConfigType is a polymorphic type value for P2MPNetworkServiceConfig

View Source
const P2MPNetworkServiceConfigUpdateType = "p2mp_vc"

P2MPNetworkServiceConfigUpdateType is a polymorphic type value for P2MPNetworkServiceConfigUpdate

View Source
const P2MPNetworkServicePatchType = "p2mp_vc"

P2MPNetworkServicePatchType is a polymorphic type value for P2MPNetworkServicePatch

View Source
const P2MPNetworkServiceRequestType = "p2mp_vc"

P2MPNetworkServiceRequestType is a polymorphic type value for P2MPNetworkServiceRequest

View Source
const P2MPNetworkServiceType = "p2mp_vc"

P2MPNetworkServiceType is a polymorphic type value for P2MPNetworkService

View Source
const P2MPNetworkServiceUpdateType = "p2mp_vc"

P2MPNetworkServiceUpdateType is a polymorphic type value for P2MPNetworkServiceUpdate

View Source
const P2PNetworkProductOfferingPatchType = "p2p_vc"

P2PNetworkProductOfferingPatchType is a polymorphic type value for P2PNetworkProductOfferingPatch

View Source
const P2PNetworkProductOfferingType = "p2p_vc"

P2PNetworkProductOfferingType is a polymorphic type value for P2PNetworkProductOffering

View Source
const P2PNetworkServiceConfigPatchType = "p2p_vc"

P2PNetworkServiceConfigPatchType is a polymorphic type value for P2PNetworkServiceConfigPatch

View Source
const P2PNetworkServiceConfigRequestType = "p2p_vc"

P2PNetworkServiceConfigRequestType is a polymorphic type value for P2PNetworkServiceConfigRequest

View Source
const P2PNetworkServiceConfigType = "p2p_vc"

P2PNetworkServiceConfigType is a polymorphic type value for P2PNetworkServiceConfig

View Source
const P2PNetworkServiceConfigUpdateType = "p2p_vc"

P2PNetworkServiceConfigUpdateType is a polymorphic type value for P2PNetworkServiceConfigUpdate

View Source
const P2PNetworkServicePatchType = "p2p_vc"

P2PNetworkServicePatchType is a polymorphic type value for P2PNetworkServicePatch

View Source
const P2PNetworkServiceRequestType = "p2p_vc"

P2PNetworkServiceRequestType is a polymorphic type value for P2PNetworkServiceRequest

View Source
const P2PNetworkServiceType = "p2p_vc"

P2PNetworkServiceType is a polymorphic type value for P2PNetworkService

View Source
const P2PNetworkServiceUpdateType = "p2p_vc"

P2PNetworkServiceUpdateType is a polymorphic type value for P2PNetworkServiceUpdate

View Source
const RouteServerNetworkFeatureConfigPatchType = "route_server"

RouteServerNetworkFeatureConfigPatchType is a polymorphic type value for RouteServerNetworkFeatureConfigPatch

View Source
const RouteServerNetworkFeatureConfigRequestType = "route_server"

RouteServerNetworkFeatureConfigRequestType is a polymorphic type value for RouteServerNetworkFeatureConfigRequest

View Source
const RouteServerNetworkFeatureConfigType = "route_server"

RouteServerNetworkFeatureConfigType is a polymorphic type value for RouteServerNetworkFeatureConfig

View Source
const RouteServerNetworkFeatureConfigUpdateType = "route_server"

RouteServerNetworkFeatureConfigUpdateType is a polymorphic type value for RouteServerNetworkFeatureConfigUpdate

View Source
const RouteServerNetworkFeatureType = "route_server"

RouteServerNetworkFeatureType is a polymorphic type value for RouteServerNetworkFeature

View Source
const SchemaVersion = "2.4.2"

SchemaVersion is the version of the ix-api schema

View Source
const VLANConfigDot1QType = "dot1q"

VLANConfigDot1QType is a polymorphic type value for VLANConfigDot1Q

View Source
const VLANConfigPortType = "port"

VLANConfigPortType is a polymorphic type value for VLANConfigPort

View Source
const VLANConfigQinQType = "qinq"

VLANConfigQinQType is a polymorphic type value for VLANConfigQinQ

Variables

View Source
var (
	// ErrInvalidPolymorphicType is raised when a polymorphic type could
	// not be resolved.
	ErrInvalidPolymorphicType = errors.New("unknown polymorphic type")
)

Errors

Functions

func IsErrAPIFault

func IsErrAPIFault(err error) bool

IsErrAPIFault checks if the error is an APIError

func IsErrAuthenticationFailed

func IsErrAuthenticationFailed(err error) bool

IsErrAuthenticationFailed checks if the error is an authentication error

func IsErrNotFound

func IsErrNotFound(err error) bool

IsErrNotFound checks if the error is a not found error

func IsErrPermissionDenied

func IsErrPermissionDenied(err error) bool

IsErrPermissionDenied checks if the error is a PermissionError

func IsErrValidationFailed

func IsErrValidationFailed(err error) bool

IsErrValidationFailed checks if this is an validation error

Types

type APIError

type APIError struct {
	ProblemResponse
}

APIError is a generic api error

func AsErrAPIFault

func AsErrAPIFault(err error) *APIError

AsErrAPIFault tries to convert an error into an APIError, a generic API error.

type APIExtensions

type APIExtensions struct {
	// Name Name of the extension.
	//
	Name string `json:"name,omitempty"`

	// Publisher Publisher of the extension.
	//
	Publisher string `json:"publisher,omitempty"`

	// DocumentationURL URL of the documentation homepage of the extension.
	//
	DocumentationURL string `json:"documentation_url,omitempty"`

	// BaseURL Extension endpoints are available under this base url.
	//
	BaseURL string `json:"base_url,omitempty"`

	// SpecURL URL of the extensions schema specifications.
	// The schema format schould be OpenAPI v3.
	//
	SpecURL string `json:"spec_url,omitempty"`
}

APIExtensions Implementation specific API extensions

type APIHealth

type APIHealth struct {
	// Status status indicates whether the service status is
	// acceptable or not.
	Status string `json:"status,omitempty"`

	// Version Public version of the service.
	//
	Version string `json:"version,omitempty"`

	// Releaseid Release version of the api implementation.
	//
	Releaseid string `json:"releaseId,omitempty"`

	// Notes Array of notes relevant to current state of health.
	Notes []string `json:"notes,omitempty"`

	// Output Raw error output, in case of "fail" or "warn" states.
	Output string `json:"output,omitempty"`

	// Serviceid A unique identifier of the service, in the application scope.
	Serviceid string `json:"serviceId,omitempty"`

	// Description A human-friendly description of the service.
	Description string `json:"description,omitempty"`

	// Checks The "checks" object MAY have a number of unique keys,
	// one for each logical downstream dependency or sub-component.
	//
	// Since each sub-component may be backed by several nodes
	// with varying health statuses, these keys point to arrays
	// of objects. In case of a single-node sub-component
	// (or if presence of nodes is not relevant), a single-element
	// array SHOULD be used as the value, for consistency.
	//
	// Please see
	// https://tools.ietf.org/id/draft-inadarei-api-health-check-04.html#the-checks-object
	// for details.
	Checks map[string]interface{} `json:"checks,omitempty"`

	// Links Is an object containing link relations and URIs [RFC3986]
	// for external links that MAY contain more information about
	// the health of the endpoint.
	Links map[string]interface{} `json:"links,omitempty"`
}

APIHealth Health Status Response

type APIImplementation

type APIImplementation struct {
	// SchemaVersion Version of the implemented IX-API schema.
	//
	SchemaVersion string `json:"schema_version,omitempty"`

	// ServiceVersion Version of the API service.
	//
	ServiceVersion string `json:"service_version,omitempty"`

	// SupportedNetworkServiceTypes Array of network service types, supported by the IX.
	//
	SupportedNetworkServiceTypes []string `json:"supported_network_service_types,omitempty"`

	// SupportedNetworkServiceConfigTypes Array of supported network service config types.
	//
	SupportedNetworkServiceConfigTypes []string `json:"supported_network_service_config_types,omitempty"`

	// SupportedNetworkFeatureTypes Array of supported network feature types.
	//
	SupportedNetworkFeatureTypes []string `json:"supported_network_feature_types,omitempty"`

	// SupportedNetworkFeatureConfigTypes Array of supported network feature config types.
	//
	SupportedNetworkFeatureConfigTypes []string `json:"supported_network_feature_config_types,omitempty"`

	// SupportedOperations Array of implemented operations of the ix-api schema.
	//
	SupportedOperations []string `json:"supported_operations,omitempty"`
}

APIImplementation API Implementation

type Account

type Account struct {
	// State is a state
	State *string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// ManagingAccount The `id` of a managing account. Can be used for creating
	// a customer hierachy. *(Sensitive Property)*
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// Name Name of the account, how it gets represented
	// in e.g. a "customers list".
	//
	Name string `json:"name,omitempty"`

	// LegalName Legal name of the organisation.
	// Only required when it's different from the account name.
	// *(Sensitive Property)*
	//
	LegalName *string `json:"legal_name,omitempty"`

	// BillingInformation is a billing_information
	BillingInformation *BillingInformation `json:"billing_information,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	ExternalRef *string `json:"external_ref,omitempty"`

	// Discoverable The account will be included for all members of the
	// ix in the list of accounts.
	//
	// Only `id`, `name` and `present_in_metro_area_networks`
	// are provided to other members.
	Discoverable *bool `json:"discoverable,omitempty"`

	// MetroAreaNetworkPresence Informal list of `MetroAreaNetwork` ids, indicating the
	// presence to other accounts.
	// The list is maintained by the account and can be empty.
	//
	MetroAreaNetworkPresence []string `json:"metro_area_network_presence,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Address is a address
	Address *Address `json:"address,omitempty"`
}

Account Account

type AccountPatch

type AccountPatch struct {
	// ManagingAccount The `id` of a managing account. Can be used for creating
	// a customer hierachy. *(Sensitive Property)*
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// Name Name of the account, how it gets represented
	// in e.g. a "customers list".
	//
	Name *string `json:"name,omitempty"`

	// LegalName Legal name of the organisation.
	// Only required when it's different from the account name.
	// *(Sensitive Property)*
	//
	LegalName *string `json:"legal_name,omitempty"`

	// BillingInformation is a billing_information
	BillingInformation *BillingInformation `json:"billing_information,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	ExternalRef *string `json:"external_ref,omitempty"`

	// Discoverable The account will be included for all members of the
	// ix in the list of accounts.
	//
	// Only `id`, `name` and `present_in_metro_area_networks`
	// are provided to other members.
	Discoverable *bool `json:"discoverable,omitempty"`

	// MetroAreaNetworkPresence Informal list of `MetroAreaNetwork` ids, indicating the
	// presence to other accounts.
	// The list is maintained by the account and can be empty.
	//
	MetroAreaNetworkPresence []string `json:"metro_area_network_presence,omitempty"`

	// Address is a address
	Address *Address `json:"address,omitempty"`
}

AccountPatch Account Update

type AccountRequest

type AccountRequest struct {
	// ManagingAccount The `id` of a managing account. Can be used for creating
	// a customer hierachy. *(Sensitive Property)*
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// Name Name of the account, how it gets represented
	// in e.g. a "customers list".
	//
	Name string `json:"name,omitempty"`

	// LegalName Legal name of the organisation.
	// Only required when it's different from the account name.
	// *(Sensitive Property)*
	//
	LegalName *string `json:"legal_name,omitempty"`

	// BillingInformation is a billing_information
	BillingInformation *BillingInformation `json:"billing_information,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	ExternalRef *string `json:"external_ref,omitempty"`

	// Discoverable The account will be included for all members of the
	// ix in the list of accounts.
	//
	// Only `id`, `name` and `present_in_metro_area_networks`
	// are provided to other members.
	Discoverable *bool `json:"discoverable,omitempty"`

	// MetroAreaNetworkPresence Informal list of `MetroAreaNetwork` ids, indicating the
	// presence to other accounts.
	// The list is maintained by the account and can be empty.
	//
	MetroAreaNetworkPresence []string `json:"metro_area_network_presence,omitempty"`

	// Address is a address
	Address *Address `json:"address,omitempty"`
}

AccountRequest Account Request

type AccountUpdate

type AccountUpdate struct {
	// ManagingAccount The `id` of a managing account. Can be used for creating
	// a customer hierachy. *(Sensitive Property)*
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// Name Name of the account, how it gets represented
	// in e.g. a "customers list".
	//
	Name string `json:"name,omitempty"`

	// LegalName Legal name of the organisation.
	// Only required when it's different from the account name.
	// *(Sensitive Property)*
	//
	LegalName *string `json:"legal_name,omitempty"`

	// BillingInformation is a billing_information
	BillingInformation *BillingInformation `json:"billing_information,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	ExternalRef *string `json:"external_ref,omitempty"`

	// Discoverable The account will be included for all members of the
	// ix in the list of accounts.
	//
	// Only `id`, `name` and `present_in_metro_area_networks`
	// are provided to other members.
	Discoverable *bool `json:"discoverable,omitempty"`

	// MetroAreaNetworkPresence Informal list of `MetroAreaNetwork` ids, indicating the
	// presence to other accounts.
	// The list is maintained by the account and can be empty.
	//
	MetroAreaNetworkPresence []string `json:"metro_area_network_presence,omitempty"`

	// Address is a address
	Address *Address `json:"address,omitempty"`
}

AccountUpdate Account Update

type AccountsListQuery

type AccountsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// StateIsNot is a state__is_not
	StateIsNot string `json:"state__is_not,omitempty"`

	// ManagingAccount is a managing_account
	ManagingAccount string `json:"managing_account,omitempty"`

	// Billable is a billable
	Billable int `json:"billable,omitempty"`

	// ExternalRef is a external_ref
	ExternalRef string `json:"external_ref,omitempty"`

	// Name is a name
	Name string `json:"name,omitempty"`
}

AccountsListQuery has all query parameters for AccountsList

func (*AccountsListQuery) RawQuery

func (a *AccountsListQuery) RawQuery() string

RawQuery creates a query string for AccountsListQuery

type Address

type Address struct {
	// Country ISO 3166-1 alpha-2 country code, for example DE
	Country string `json:"country,omitempty"`

	// Locality The locality/city. For example, Mountain View.
	Locality string `json:"locality,omitempty"`

	// Region The region. For example, CA
	Region *string `json:"region,omitempty"`

	// PostalCode A postal code. For example, 9404
	PostalCode string `json:"postal_code,omitempty"`

	// StreetAddress The street address. For example, 1600 Amphitheatre Pkwy.
	StreetAddress string `json:"street_address,omitempty"`

	// PostOfficeBoxNumber The post office box number for PO box addresses.
	PostOfficeBoxNumber *string `json:"post_office_box_number,omitempty"`
}

Address A postal address. *(Sensitive Property)*

type AllowMemberJoiningRule

type AllowMemberJoiningRule struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account to which access to the
	// network service should be granted or denied.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// CapacityMin Require an optional minimum capacity to join
	// the network service.
	CapacityMin *int `json:"capacity_min,omitempty"`

	// CapacityMax An optional rate limit which has precedence over
	// the capacity set in the network service config.
	CapacityMax *int `json:"capacity_max,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NetworkService is a network_service
	NetworkService string `json:"network_service,omitempty"`
}

AllowMemberJoiningRule A rule for members joining a private vlan

func (AllowMemberJoiningRule) PolymorphicType

func (a AllowMemberJoiningRule) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type AllowMemberJoiningRulePatch

type AllowMemberJoiningRulePatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account to which access to the
	// network service should be granted or denied.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// CapacityMin Require an optional minimum capacity to join
	// the network service.
	CapacityMin *int `json:"capacity_min,omitempty"`

	// CapacityMax An optional rate limit which has precedence over
	// the capacity set in the network service config.
	CapacityMax *int `json:"capacity_max,omitempty"`
}

AllowMemberJoiningRulePatch A vlan member joining rule update

func (AllowMemberJoiningRulePatch) PolymorphicType

func (a AllowMemberJoiningRulePatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type AllowMemberJoiningRuleRequest

type AllowMemberJoiningRuleRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account to which access to the
	// network service should be granted or denied.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// CapacityMin Require an optional minimum capacity to join
	// the network service.
	CapacityMin *int `json:"capacity_min,omitempty"`

	// CapacityMax An optional rate limit which has precedence over
	// the capacity set in the network service config.
	CapacityMax *int `json:"capacity_max,omitempty"`

	// NetworkService is a network_service
	NetworkService string `json:"network_service,omitempty"`
}

AllowMemberJoiningRuleRequest A new vlan member joining rule

func (AllowMemberJoiningRuleRequest) PolymorphicType

func (a AllowMemberJoiningRuleRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type AllowMemberJoiningRuleUpdate

type AllowMemberJoiningRuleUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account to which access to the
	// network service should be granted or denied.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// CapacityMin Require an optional minimum capacity to join
	// the network service.
	CapacityMin *int `json:"capacity_min,omitempty"`

	// CapacityMax An optional rate limit which has precedence over
	// the capacity set in the network service config.
	CapacityMax *int `json:"capacity_max,omitempty"`
}

AllowMemberJoiningRuleUpdate A vlan member joining rule update

func (AllowMemberJoiningRuleUpdate) PolymorphicType

func (a AllowMemberJoiningRuleUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type AuthAPIKeySecret

type AuthAPIKeySecret struct {
	Key    string
	Secret string
}

AuthAPIKeySecret will use the legacy authentication endpoint

type AuthToken

type AuthToken struct {
	// AccessToken is a access_token
	AccessToken string `json:"access_token,omitempty"`

	// RefreshToken is a refresh_token
	RefreshToken string `json:"refresh_token,omitempty"`
}

AuthToken AuthToken

type AuthTokenRequest

type AuthTokenRequest struct {
	// APIKey is a api_key
	APIKey string `json:"api_key,omitempty"`

	// APISecret is a api_secret
	APISecret string `json:"api_secret,omitempty"`
}

AuthTokenRequest AuthTokenRequest

type AuthenticationError

type AuthenticationError struct {
	ProblemResponse
}

AuthenticationError indicates that the authentication was not successful.

func AsErrAuthenticationFailed

func AsErrAuthenticationFailed(err error) *AuthenticationError

AsErrAuthenticationFailed tries to convert the error into a AuthenticationError

type AuthenticationProvider

type AuthenticationProvider interface {
	// contains filtered or unexported methods
}

AuthenticationProvider is an interface for authentication

type BillingInformation

type BillingInformation struct {
	// Name Name of the organisation receiving invoices.
	//
	Name string `json:"name,omitempty"`

	// Address is a address
	Address *Address `json:"address,omitempty"`

	// VatNumber Value-added tax number, required for
	// european reverse charge system.
	//
	VatNumber *string `json:"vat_number,omitempty"`
}

BillingInformation Optional information required for issuing invoices. Only accounts with `billing_information` present can be used as a `billing_account`. *(Sensitive Property)*

type CancellationPolicy

type CancellationPolicy struct {
	// DecommissionAt This field denotes the first possible cancellation
	// date of the service.
	DecommissionAt Date `json:"decommission_at,omitempty"`

	// ChargedUntil Your obligation to pay for the service will end on this date.
	// Typically `≥ decommission_at`.
	ChargedUntil Date `json:"charged_until,omitempty"`
}

CancellationPolicy Cancellation Policy

type CancellationRequest

type CancellationRequest struct {
	// DecommissionAt An optional date for scheduling the cancellation
	// and service decommissioning.
	DecommissionAt *Date `json:"decommission_at,omitempty"`
}

CancellationRequest Service Cancellation Request

type Client

type Client struct {
	http.Client

	APIURL string
	// contains filtered or unexported fields
}

Client is an IX-API http client

func NewClient

func NewClient(server string) *Client

NewClient creates a new client instance

func (*Client) APIExtensionsList

func (c *Client) APIExtensionsList(
	ctx context.Context,

) ([]*APIExtensions, error)

APIExtensionsList List provider extensions to the IX-API.

func (*Client) APIHealthRead

func (c *Client) APIHealthRead(
	ctx context.Context,

) (*APIHealth, error)

APIHealthRead Get the IX-API service health status.

func (*Client) APIImplementationRead

func (c *Client) APIImplementationRead(
	ctx context.Context,

) (*APIImplementation, error)

APIImplementationRead Get the API implementation details.

func (*Client) AccountsCreate

func (c *Client) AccountsCreate(
	ctx context.Context,
	req *AccountRequest,

) (*Account, error)

AccountsCreate Create a new account.

func (*Client) AccountsDestroy

func (c *Client) AccountsDestroy(
	ctx context.Context,
	id string,

) (*Account, error)

AccountsDestroy Accounts can be deleted, when all services and configs are decommissioned or the account is not longer referenced e.g. as a `managing_account` or `billing_account`.

Deleting an account will cascade to `contacts` and `role-assignments`.

The request will immediately fail, if the above preconditions are not met.

func (*Client) AccountsList

func (c *Client) AccountsList(
	ctx context.Context,

	qry ...*AccountsListQuery,
) ([]*Account, error)

AccountsList Retrieve a list of `Account`s.

This includes all accounts the currently authorized account is managing and the current account itself.

Also `discoverable` accounts will be included, however sensitive properties, like `address` or `external_ref` will either not be present or redacted.

func (*Client) AccountsPatch

func (c *Client) AccountsPatch(
	ctx context.Context,
	id string, req *AccountPatch,

) (*Account, error)

AccountsPatch Update parts of an account.

func (*Client) AccountsRead

func (c *Client) AccountsRead(
	ctx context.Context,
	id string,

) (*Account, error)

AccountsRead Get a single account.

func (*Client) AccountsUpdate

func (c *Client) AccountsUpdate(
	ctx context.Context,
	id string, req *AccountUpdate,

) (*Account, error)

AccountsUpdate Update the entire account.

func (*Client) AuthTokenCreate

func (c *Client) AuthTokenCreate(
	ctx context.Context,
	req *AuthTokenRequest,

) (*AuthToken, error)

AuthTokenCreate Authenticate an API user identified by `api_key` and `api_secret`.

func (*Client) AuthTokenRefresh

func (c *Client) AuthTokenRefresh(
	ctx context.Context,
	req *RefreshTokenRequest,

) (*AuthToken, error)

AuthTokenRefresh Reauthenticate the API user, issue a new `access_token` and `refresh_token` pair by providing the `refresh_token` in the request body.

func (*Client) Authenticate

func (c *Client) Authenticate(
	ctx context.Context,
	auth AuthenticationProvider,
) error

Authenticate using a authentication provider

func (*Client) ConnectionsCancellationPolicy

func (c *Client) ConnectionsCancellationPolicy(
	ctx context.Context,
	id string,
	qry ...*ConnectionsCancellationPolicyQuery,
) (*CancellationPolicy, error)

ConnectionsCancellationPolicy The cancellation-policy can be queried to answer the questions:

If I cancel my subscription, *when will it be technically decommissioned*? If I cancel my subscription, *until what date will I be charged*?

When the query parameter `decommision_at` is not provided it will provide the first possible cancellation date and charge period if cancelled at above date.

The granularity of the date field is a day, the start and end of which are to be interpreted by the IXP (some may use UTC, some may use their local time zone).

func (*Client) ConnectionsCreate

func (c *Client) ConnectionsCreate(
	ctx context.Context,
	req *ConnectionRequest,

) (*Connection, error)

ConnectionsCreate Create a new `connection` and request ports allocation.

Two workflows for allocating ports is supported and dependent on the `cross_connect_initiator` property of the corresponding `product-offering`:

When the initiator is the `subscriber`, a Letter Of Authorization (LOA) can be downloaded from the `/connection/<id>/loa` resource. In case the `exchange` is the initiator, the LOA can be uploaded to this resource.

Creating a connection will also create PortReservations. See the `port_quantity` and `subscriber_side_demarcs` attributes for details.

Please refer to the internet exchange's api usage guide for implementation specific details.

func (*Client) ConnectionsDestroy

func (c *Client) ConnectionsDestroy(
	ctx context.Context,
	id string, req *CancellationRequest,

) (*Connection, error)

ConnectionsDestroy Request decommissioning the connection.

The cancellation policy of the connection applies here and is independent from the policy of the network-service and network-service-config using the connection.

The connection will assume the state `decommission_requested`.

Associated `port-reservation` will be also marked for decommissining and ports will be deallocated.

The decommissioning request will *not* cascade to network services and configs.

func (*Client) ConnectionsList

func (c *Client) ConnectionsList(
	ctx context.Context,

	qry ...*ConnectionsListQuery,
) ([]*Connection, error)

ConnectionsList List all `connection`s.

func (*Client) ConnectionsLoaDownload

func (c *Client) ConnectionsLoaDownload(
	ctx context.Context,
	id string,

) (Response, error)

ConnectionsLoaDownload Download the *Letter Of Authorization* associated with the `connection`. In case of a *subscriber initiated cross-connect*, it will be provided by the exchange.

func (*Client) ConnectionsLoaUpload

func (c *Client) ConnectionsLoaUpload(
	ctx context.Context,
	id string, data []byte,

) (Response, error)

ConnectionsLoaUpload Upload a *Letter Of Authorization* for this `connection`.

The LOA is valid for the entire connection and must include all ports.

func (*Client) ConnectionsPatch

func (c *Client) ConnectionsPatch(
	ctx context.Context,
	id string, req *ConnectionPatch,

) (*Connection, error)

ConnectionsPatch Partially update a connection.

func (*Client) ConnectionsRead

func (c *Client) ConnectionsRead(
	ctx context.Context,
	id string,

) (*Connection, error)

ConnectionsRead Read a `connection`.

func (*Client) ConnectionsUpdate

func (c *Client) ConnectionsUpdate(
	ctx context.Context,
	id string, req *ConnectionUpdate,

) (*Connection, error)

ConnectionsUpdate Update a connection.

func (*Client) ContactsCreate

func (c *Client) ContactsCreate(
	ctx context.Context,
	req *ContactRequest,

) (*Contact, error)

ContactsCreate Create a new contact.

func (*Client) ContactsDestroy

func (c *Client) ContactsDestroy(
	ctx context.Context,
	id string,

) (*Contact, error)

ContactsDestroy Remove a contact.

Please note, that a contact can only be removed if it is not longer in use in a network service or config through a role assignment.

func (*Client) ContactsList

func (c *Client) ContactsList(
	ctx context.Context,

	qry ...*ContactsListQuery,
) ([]*Contact, error)

ContactsList List available contacts managed by the authorized account.

func (*Client) ContactsPatch

func (c *Client) ContactsPatch(
	ctx context.Context,
	id string, req *ContactPatch,

) (*Contact, error)

ContactsPatch Update parts of a contact

func (*Client) ContactsRead

func (c *Client) ContactsRead(
	ctx context.Context,
	id string,

) (*Contact, error)

ContactsRead Get a contact by it's id

func (*Client) ContactsUpdate

func (c *Client) ContactsUpdate(
	ctx context.Context,
	id string, req *ContactUpdate,

) (*Contact, error)

ContactsUpdate Update a contact

func (*Client) DevicesList

func (c *Client) DevicesList(
	ctx context.Context,

	qry ...*DevicesListQuery,
) ([]*Device, error)

DevicesList List available devices

func (*Client) DevicesRead

func (c *Client) DevicesRead(
	ctx context.Context,
	id string,

) (*Device, error)

DevicesRead Get a specific device identified by id

func (*Client) FacilitiesList

func (c *Client) FacilitiesList(
	ctx context.Context,

	qry ...*FacilitiesListQuery,
) ([]*Facility, error)

FacilitiesList Get a (filtered) list of `facilities`.

func (*Client) FacilitiesRead

func (c *Client) FacilitiesRead(
	ctx context.Context,
	id string,

) (*Facility, error)

FacilitiesRead Retrieve a facility by id

func (*Client) IPsCreate

func (c *Client) IPsCreate(
	ctx context.Context,
	req *IPAddressRequest,

) (*IPAddress, error)

IPsCreate Add an ip host address or network prefix.

func (*Client) IPsList

func (c *Client) IPsList(
	ctx context.Context,

	qry ...*IPsListQuery,
) ([]*IPAddress, error)

IPsList List all ip addresses (and prefixes).

func (*Client) IPsPatch

func (c *Client) IPsPatch(
	ctx context.Context,
	id string, req *IPAddressPatch,

) (*IPAddress, error)

IPsPatch Update parts of an ip address.

As with the `PUT` opertaion, IP addresses, where you don't have update rights, will yield a `resource access denied` error when attempting an update.

If the ip address was allocated for you, you might not be able to change anything but the `fqdn`.

func (*Client) IPsRead

func (c *Client) IPsRead(
	ctx context.Context,
	id string,

) (*IPAddress, error)

IPsRead Get a single ip addresses by it's id.

func (*Client) IPsUpdate

func (c *Client) IPsUpdate(
	ctx context.Context,
	id string, req *IPAddressUpdate,

) (*IPAddress, error)

IPsUpdate Update an ip address object.

You can only update IP addresses within your current scope. Not all addresses you can read you can update.

If the ip address was allocated for you, you might not be able to change anything but the `fqdn`.

func (*Client) MacsCreate

func (c *Client) MacsCreate(
	ctx context.Context,
	req *MacAddressRequest,

) (*MacAddress, error)

MacsCreate Register a mac address.

func (*Client) MacsDestroy

func (c *Client) MacsDestroy(
	ctx context.Context,
	id string,

) (*MacAddress, error)

MacsDestroy Remove a mac address.

func (*Client) MacsList

func (c *Client) MacsList(
	ctx context.Context,

	qry ...*MacsListQuery,
) ([]*MacAddress, error)

MacsList List all mac addresses managed by the authorized customer.

func (*Client) MacsRead

func (c *Client) MacsRead(
	ctx context.Context,
	id string,

) (*MacAddress, error)

MacsRead Get a single mac address by it's id.

func (*Client) MemberJoiningRulesCreate

func (c *Client) MemberJoiningRulesCreate(
	ctx context.Context,
	req MemberJoiningRuleRequest,

) (MemberJoiningRule, error)

MemberJoiningRulesCreate Create a member joining rule

func (*Client) MemberJoiningRulesDestroy

func (c *Client) MemberJoiningRulesDestroy(
	ctx context.Context,
	id string,

) (MemberJoiningRule, error)

MemberJoiningRulesDestroy Delete a joining rule

func (*Client) MemberJoiningRulesList

func (c *Client) MemberJoiningRulesList(
	ctx context.Context,

	qry ...*MemberJoiningRulesListQuery,
) ([]MemberJoiningRule, error)

MemberJoiningRulesList Get a list of joining rules

func (*Client) MemberJoiningRulesPatch

func (c *Client) MemberJoiningRulesPatch(
	ctx context.Context,
	id string, req MemberJoiningRulePatch,

) (MemberJoiningRule, error)

MemberJoiningRulesPatch Partially update a joining rule

func (*Client) MemberJoiningRulesRead

func (c *Client) MemberJoiningRulesRead(
	ctx context.Context,
	id string,

) (MemberJoiningRule, error)

MemberJoiningRulesRead Get a single rule

func (*Client) MemberJoiningRulesUpdate

func (c *Client) MemberJoiningRulesUpdate(
	ctx context.Context,
	id string, req MemberJoiningRuleUpdate,

) (MemberJoiningRule, error)

MemberJoiningRulesUpdate Update a joining rule

func (*Client) MetroAreaNetworksList

func (c *Client) MetroAreaNetworksList(
	ctx context.Context,

	qry ...*MetroAreaNetworksListQuery,
) ([]*MetroAreaNetwork, error)

MetroAreaNetworksList List all MetroAreaNetworks

func (*Client) MetroAreaNetworksRead

func (c *Client) MetroAreaNetworksRead(
	ctx context.Context,
	id string,

) (*MetroAreaNetwork, error)

MetroAreaNetworksRead Retrieve a MetroAreaNetwork

func (*Client) MetroAreasList

func (c *Client) MetroAreasList(
	ctx context.Context,

	qry ...*MetroAreasListQuery,
) ([]*MetroArea, error)

MetroAreasList List all MetroAreas

func (*Client) MetroAreasRead

func (c *Client) MetroAreasRead(
	ctx context.Context,
	id string,

) ([]*MetroArea, error)

MetroAreasRead Get a single MetroArea

func (*Client) NetworkFeatureConfigsCreate

func (c *Client) NetworkFeatureConfigsCreate(
	ctx context.Context,
	req NetworkFeatureConfigRequest,

) (NetworkFeatureConfig, error)

NetworkFeatureConfigsCreate Create a configuration for a `NetworkFeature` defined in the `NetworkFeature`s collection.

func (*Client) NetworkFeatureConfigsDestroy

func (c *Client) NetworkFeatureConfigsDestroy(
	ctx context.Context,
	id string,

) (NetworkFeatureConfig, error)

NetworkFeatureConfigsDestroy Remove a network feature config.

The network feature config will be marked as `decommission_requested`. Decommissioning a network feature config will not cascade to related services or service configs.

func (*Client) NetworkFeatureConfigsList

func (c *Client) NetworkFeatureConfigsList(
	ctx context.Context,

	qry ...*NetworkFeatureConfigsListQuery,
) ([]NetworkFeatureConfig, error)

NetworkFeatureConfigsList Get all network feature configs.

func (*Client) NetworkFeatureConfigsPatch

func (c *Client) NetworkFeatureConfigsPatch(
	ctx context.Context,
	id string, req NetworkFeatureConfigPatch,

) (NetworkFeatureConfig, error)

NetworkFeatureConfigsPatch Update parts of a network feature configuration

func (*Client) NetworkFeatureConfigsRead

func (c *Client) NetworkFeatureConfigsRead(
	ctx context.Context,
	id string,

) (NetworkFeatureConfig, error)

NetworkFeatureConfigsRead Get a single network feature config.

func (*Client) NetworkFeatureConfigsUpdate

func (c *Client) NetworkFeatureConfigsUpdate(
	ctx context.Context,
	id string, req NetworkFeatureConfigUpdate,

) (NetworkFeatureConfig, error)

NetworkFeatureConfigsUpdate Update a network feature configuration

func (*Client) NetworkFeaturesList

func (c *Client) NetworkFeaturesList(
	ctx context.Context,

	qry ...*NetworkFeaturesListQuery,
) ([]NetworkFeature, error)

NetworkFeaturesList List available network features.

func (*Client) NetworkFeaturesRead

func (c *Client) NetworkFeaturesRead(
	ctx context.Context,
	id string,

) (NetworkFeature, error)

NetworkFeaturesRead Get a single network feature by it's id.

func (*Client) NetworkServiceCancellationPolicyRead

func (c *Client) NetworkServiceCancellationPolicyRead(
	ctx context.Context,
	id string,
	qry ...*NetworkServiceCancellationPolicyReadQuery,
) (*CancellationPolicy, error)

NetworkServiceCancellationPolicyRead The cancellation-policy can be queried to answer the questions:

If I cancel my service, *when will it be technically decommissioned*? If I cancel my service, *until what date will I be charged*?

When the query parameter `decommision_at` is not provided it will provide the first possible cancellation date and charge period if cancelled at above date.

The granularity of the date field is a day, the start and end of which are to be interpreted by the IXP (some may use UTC, some may use their local time zone).

func (*Client) NetworkServiceChangeRequestCreate

func (c *Client) NetworkServiceChangeRequestCreate(
	ctx context.Context,
	id string, req *NetworkServiceChangeRequest,

) (*NetworkServiceChangeRequest, error)

NetworkServiceChangeRequestCreate Request a change to the network service.

The B-side participant in a peer-to-peer network service (`p2p_vc`) can issue a change request, expressing a desired change in the capacity.

The change is accepted when the A-side has configured the network service and config with the new bandwidth. This is done using the `network_service_update`, `network_service_partial_update`, `network_service_config_update` or `network_service_config_partial_update` operations by the A-side.

These changes can sometimes require a change of the product offering. The product offering may only differ in bandwidth.

The network service will change its state from `production` into `production_change_pending`.

A change can by rejected (by the A-side) or retracted (by the B-side) using the `network_service_change_request_destroy` operation.

Only one change request may be issued at a time.

A change request by the A-side is not a valid request and will be rejected.

func (*Client) NetworkServiceChangeRequestDestroy

func (c *Client) NetworkServiceChangeRequestDestroy(
	ctx context.Context,
	id string,

) (*NetworkServiceChangeRequest, error)

NetworkServiceChangeRequestDestroy Retract or reject a change to the network service.

func (*Client) NetworkServiceChangeRequestRead

func (c *Client) NetworkServiceChangeRequestRead(
	ctx context.Context,
	id string,

) (*NetworkServiceChangeRequest, error)

NetworkServiceChangeRequestRead Get the change request.

func (*Client) NetworkServiceConfigCancellationPolicyRead

func (c *Client) NetworkServiceConfigCancellationPolicyRead(
	ctx context.Context,
	id string,
	qry ...*NetworkServiceConfigCancellationPolicyReadQuery,
) (*CancellationPolicy, error)

NetworkServiceConfigCancellationPolicyRead The cancellation-policy can be queried to answer the questions:

If I cancel my subscription, *when will it be technically decommissioned*? If I cancel my subscription, *until what date will I be charged*?

When the query parameter `decommision_at` is not provided it will provide the first possible cancellation date and charge period if cancelled at above date.

The granularity of the date field is a day, the start and end of which are to be interpreted by the IXP (some may use UTC, some may use their local time zone).

func (*Client) NetworkServiceConfigsCreate

func (c *Client) NetworkServiceConfigsCreate(
	ctx context.Context,
	req NetworkServiceConfigRequest,

) (NetworkServiceConfig, error)

NetworkServiceConfigsCreate Create a `network-service-config`.

func (*Client) NetworkServiceConfigsDestroy

func (c *Client) NetworkServiceConfigsDestroy(
	ctx context.Context,
	id string, req *CancellationRequest,

) (NetworkServiceConfig, error)

NetworkServiceConfigsDestroy Request decommissioning the network service configuration.

The network service config will assume the state `decommission_requested`. This will cascade to related resources like `network-feature-configs`.

func (*Client) NetworkServiceConfigsList

func (c *Client) NetworkServiceConfigsList(
	ctx context.Context,

	qry ...*NetworkServiceConfigsListQuery,
) ([]NetworkServiceConfig, error)

NetworkServiceConfigsList Get all `network-service-config`s.

func (*Client) NetworkServiceConfigsPatch

func (c *Client) NetworkServiceConfigsPatch(
	ctx context.Context,
	id string, req NetworkServiceConfigPatch,

) (NetworkServiceConfig, error)

NetworkServiceConfigsPatch Update parts of an exisiting `network-service-config`.

func (*Client) NetworkServiceConfigsRead

func (c *Client) NetworkServiceConfigsRead(
	ctx context.Context,
	id string,

) (NetworkServiceConfig, error)

NetworkServiceConfigsRead Get a `network-service-config`

func (*Client) NetworkServiceConfigsUpdate

func (c *Client) NetworkServiceConfigsUpdate(
	ctx context.Context,
	id string, req NetworkServiceConfigUpdate,

) (NetworkServiceConfig, error)

NetworkServiceConfigsUpdate Update an exisiting `network-service-config`

func (*Client) NetworkServicesCreate

func (c *Client) NetworkServicesCreate(
	ctx context.Context,
	req NetworkServiceRequest,

) (NetworkService, error)

NetworkServicesCreate Create a new network service

func (*Client) NetworkServicesDestroy

func (c *Client) NetworkServicesDestroy(
	ctx context.Context,
	id string, req *CancellationRequest,

) (NetworkService, error)

NetworkServicesDestroy Request decomissioning of the network service.

The network service will enter the state of `decommission_requested`. The request will cascade to related network service and feature configs.

An *optional request body* can be provided to request a specific service termination date.

If no date is given in the request body, it is assumed to be the earliest possible date.

Possible values for `decommission_at` can be queried through the `network_service_cancellation_policy_read` operation.

The response will contain the dates on which the changes will be effected.

func (*Client) NetworkServicesList

func (c *Client) NetworkServicesList(
	ctx context.Context,

	qry ...*NetworkServicesListQuery,
) ([]NetworkService, error)

NetworkServicesList List available `NetworkService`s.

func (*Client) NetworkServicesPatch

func (c *Client) NetworkServicesPatch(
	ctx context.Context,
	id string, req NetworkServicePatch,

) (NetworkService, error)

NetworkServicesPatch Partially update a network service

func (*Client) NetworkServicesRead

func (c *Client) NetworkServicesRead(
	ctx context.Context,
	id string,

) (NetworkService, error)

NetworkServicesRead Get a specific `network-service` by id.

func (*Client) NetworkServicesUpdate

func (c *Client) NetworkServicesUpdate(
	ctx context.Context,
	id string, req NetworkServiceUpdate,

) (NetworkService, error)

NetworkServicesUpdate Update a network service

func (*Client) PopsList

func (c *Client) PopsList(
	ctx context.Context,

	qry ...*PopsListQuery,
) ([]*PointOfPresence, error)

PopsList List all PoPs

func (*Client) PopsRead

func (c *Client) PopsRead(
	ctx context.Context,
	id string,

) (*PointOfPresence, error)

PopsRead Get a single point of presence

func (*Client) PortReservationCancellationPolicy

func (c *Client) PortReservationCancellationPolicy(
	ctx context.Context,
	id string,
	qry ...*PortReservationCancellationPolicyQuery,
) (*CancellationPolicy, error)

PortReservationCancellationPolicy The cancellation-policy can be queried to answer the questions:

If I cancel my subscription, *when will it be technically decommissioned*? If I cancel my subscription, *until what date will I be charged*?

When the query parameter `decommision_at` is not provided it will provide the first possible cancellation date and charge period if cancelled at above date.

The granularity of the date field is a day, the start and end of which are to be interpreted by the IXP (some may use UTC, some may use their local time zone).

func (*Client) PortReservationsCreate

func (c *Client) PortReservationsCreate(
	ctx context.Context,
	req *PortReservationRequest,

) (*PortReservation, error)

PortReservationsCreate Create a new `PortReservation`.

Two workflows for allocating ports is supported and dependent on the `cross_connect_initiator` property of the corresponding `product-offering`:

Individual LOAs can be uploaded and downloaded for each PortAllocation using the endpoint `/port-reservations/{id}/loa`.

Please refer to the internet exchange's api usage guide for implementation specific details.

func (*Client) PortReservationsDestroy

func (c *Client) PortReservationsDestroy(
	ctx context.Context,
	id string, req *CancellationRequest,

) (*PortReservation, error)

PortReservationsDestroy Request decommissioning the port-reservation. The associated `port` will be deallocated and removed from the `connection`.

func (*Client) PortReservationsList

func (c *Client) PortReservationsList(
	ctx context.Context,

	qry ...*PortReservationsListQuery,
) ([]*PortReservation, error)

PortReservationsList List all port reservations.

func (*Client) PortReservationsLoaDownload

func (c *Client) PortReservationsLoaDownload(
	ctx context.Context,
	id string,

) (Response, error)

PortReservationsLoaDownload Download the *Letter Of Authorization* associated with the port-reservation.

In case of a *subscriber initiated cross-connect*, it will be provided by the exchange.

func (*Client) PortReservationsLoaUpload

func (c *Client) PortReservationsLoaUpload(
	ctx context.Context,
	id string, data []byte,

) (Response, error)

PortReservationsLoaUpload Upload a *Letter Of Authorization* for this `PortReservation`.

func (*Client) PortReservationsPatch

func (c *Client) PortReservationsPatch(
	ctx context.Context,
	id string, req *PortReservationPatch,

) (*PortReservation, error)

PortReservationsPatch Partially update a port reservation.

func (*Client) PortReservationsRead

func (c *Client) PortReservationsRead(
	ctx context.Context,
	id string,

) (*PortReservation, error)

PortReservationsRead Retrieve a `PortReservation`.

func (*Client) PortReservationsUpdate

func (c *Client) PortReservationsUpdate(
	ctx context.Context,
	id string, req *PortReservationUpdate,

) (*PortReservation, error)

PortReservationsUpdate Update a port reservation.

func (*Client) PortsList

func (c *Client) PortsList(
	ctx context.Context,

	qry ...*PortsListQuery,
) ([]*Port, error)

PortsList List all ports.

func (*Client) PortsRead

func (c *Client) PortsRead(
	ctx context.Context,
	id string,

) (*Port, error)

PortsRead Retrieve a port.

func (*Client) ProductOfferingsList

func (c *Client) ProductOfferingsList(
	ctx context.Context,

	qry ...*ProductOfferingsListQuery,
) ([]ProductOffering, error)

ProductOfferingsList List all (filtered) products-offerings available on the platform

func (*Client) ProductOfferingsRead

func (c *Client) ProductOfferingsRead(
	ctx context.Context,
	id string,

) (ProductOffering, error)

ProductOfferingsRead Get a single products-offering by id.

func (*Client) RoleAssignmentsCreate

func (c *Client) RoleAssignmentsCreate(
	ctx context.Context,
	req *RoleAssignmentRequest,

) (*RoleAssignment, error)

RoleAssignmentsCreate Assign a `Role` to a `Contact`.

The contact needs to have all fields filled, which the role requires. If this is not the case a `400` `UnableToFulfill` will be returned.

func (*Client) RoleAssignmentsDestroy

func (c *Client) RoleAssignmentsDestroy(
	ctx context.Context,
	id string,

) (*RoleAssignment, error)

RoleAssignmentsDestroy Remove a role assignment from a contact.

If the contact is still in use with a given role required, this will yield an `UnableToFulfill` error.

func (*Client) RoleAssignmentsList

func (c *Client) RoleAssignmentsList(
	ctx context.Context,

	qry ...*RoleAssignmentsListQuery,
) ([]*RoleAssignment, error)

RoleAssignmentsList List all role assignments for a contact.

func (*Client) RoleAssignmentsRead

func (c *Client) RoleAssignmentsRead(
	ctx context.Context,
	id string,

) (*RoleAssignment, error)

RoleAssignmentsRead Get a role assignment for a contact.

func (*Client) RolesList

func (c *Client) RolesList(
	ctx context.Context,

	qry ...*RolesListQuery,
) ([]*Role, error)

RolesList List all roles available.

func (*Client) RolesRead

func (c *Client) RolesRead(
	ctx context.Context,
	id string,

) (*Role, error)

RolesRead Get a single `Role`.

func (*Client) SetBearer

func (c *Client) SetBearer(token string)

SetBearer allows setting the bearer token in the client. This can be used to implement custom authentication.

type CloudNetworkProductOffering

type CloudNetworkProductOffering struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Name Name of the product
	Name string `json:"name,omitempty"`

	// DisplayName is a display_name
	DisplayName string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// ProviderVLANs The `NetworkService` provides `single` or `multi`ple vlans.
	ProviderVLANs string `json:"provider_vlans,omitempty"`

	// ServiceMetroAreaNetwork Id of the `MetroAreaNetwork`.
	// The service is directly provided on the metro area network.
	//
	// In case of a `p2p_vc`, the `service_metro_area_network` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroAreaNetwork string `json:"service_metro_area_network,omitempty"`

	// ServiceMetroArea Id of the `MetroArea`. The service is delivered
	// in this metro area.
	//
	// In case of a `p2p_vc`, the `service_metro_area` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroArea string `json:"service_metro_area,omitempty"`

	// BandwidthMin When configuring access to the network service, at least
	// this `capacity` must be provided.
	BandwidthMin int `json:"bandwidth_min,omitempty"`

	// BandwidthMax When not `null`, this value enforces a mandatory
	// rate limit for all network service configs.
	BandwidthMax int `json:"bandwidth_max,omitempty"`

	// ServiceProviderRegion The service provider offers the network service for a
	// specific region.
	//
	ServiceProviderRegion string `json:"service_provider_region,omitempty"`

	// ServiceProviderPop The datacenter id of the partner NNI to the service provider.
	// It supposed to be used when identifying a location via
	// the cloud provider's APIs.
	//
	ServiceProviderPop string `json:"service_provider_pop,omitempty"`

	// ServiceProviderPopName The datacenter description of the partner NNI to the service provider.
	//
	ServiceProviderPopName *string `json:"service_provider_pop_name,omitempty"`

	// ServiceProviderWorkflow When the workflow is `provider_first` the subscriber creates
	// a circuit with the cloud provider and provides a `cloud_key` for filtering
	// the product-offerings.
	//
	// If the workflow is `exchange_first` the IX will create
	// the cloud circuit on the provider side.
	//
	ServiceProviderWorkflow string `json:"service_provider_workflow,omitempty"`

	// DeliveryMethod The exchange delivers the service over a `shared` or `dedicated` NNI.
	DeliveryMethod string `json:"delivery_method,omitempty"`

	// Diversity The service can be delivered over multiple handovers from
	// the exchange to the `service_provider`.
	// The `diversity` denotes the number of handovers between the
	// exchange and the service provider. A value of two signals a
	// redundant service.
	//
	// Only one network service configuration for each `handover` and
	// `cloud_vlan` can be created.
	Diversity int `json:"diversity,omitempty"`
}

CloudNetworkProductOffering Cloud Network Product Offering

func (CloudNetworkProductOffering) PolymorphicType

func (c CloudNetworkProductOffering) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type CloudNetworkProductOfferingPatch

type CloudNetworkProductOfferingPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID *string `json:"id,omitempty"`

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

	// DisplayName is a display_name
	DisplayName *string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType *string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork *string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea *string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed *int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider *string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed *bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed *bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// ProviderVLANs The `NetworkService` provides `single` or `multi`ple vlans.
	ProviderVLANs *string `json:"provider_vlans,omitempty"`

	// ServiceMetroAreaNetwork Id of the `MetroAreaNetwork`.
	// The service is directly provided on the metro area network.
	//
	// In case of a `p2p_vc`, the `service_metro_area_network` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroAreaNetwork *string `json:"service_metro_area_network,omitempty"`

	// ServiceMetroArea Id of the `MetroArea`. The service is delivered
	// in this metro area.
	//
	// In case of a `p2p_vc`, the `service_metro_area` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroArea *string `json:"service_metro_area,omitempty"`

	// BandwidthMin When configuring access to the network service, at least
	// this `capacity` must be provided.
	BandwidthMin *int `json:"bandwidth_min,omitempty"`

	// BandwidthMax When not `null`, this value enforces a mandatory
	// rate limit for all network service configs.
	BandwidthMax *int `json:"bandwidth_max,omitempty"`

	// ServiceProviderRegion The service provider offers the network service for a
	// specific region.
	//
	ServiceProviderRegion *string `json:"service_provider_region,omitempty"`

	// ServiceProviderPop The datacenter id of the partner NNI to the service provider.
	// It supposed to be used when identifying a location via
	// the cloud provider's APIs.
	//
	ServiceProviderPop *string `json:"service_provider_pop,omitempty"`

	// ServiceProviderPopName The datacenter description of the partner NNI to the service provider.
	//
	ServiceProviderPopName *string `json:"service_provider_pop_name,omitempty"`

	// ServiceProviderWorkflow When the workflow is `provider_first` the subscriber creates
	// a circuit with the cloud provider and provides a `cloud_key` for filtering
	// the product-offerings.
	//
	// If the workflow is `exchange_first` the IX will create
	// the cloud circuit on the provider side.
	//
	ServiceProviderWorkflow *string `json:"service_provider_workflow,omitempty"`

	// DeliveryMethod The exchange delivers the service over a `shared` or `dedicated` NNI.
	DeliveryMethod *string `json:"delivery_method,omitempty"`

	// Diversity The service can be delivered over multiple handovers from
	// the exchange to the `service_provider`.
	// The `diversity` denotes the number of handovers between the
	// exchange and the service provider. A value of two signals a
	// redundant service.
	//
	// Only one network service configuration for each `handover` and
	// `cloud_vlan` can be created.
	Diversity *int `json:"diversity,omitempty"`
}

CloudNetworkProductOfferingPatch Cloud Network Product Offering

func (CloudNetworkProductOfferingPatch) PolymorphicType

func (c CloudNetworkProductOfferingPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type CloudNetworkService

type CloudNetworkService struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NscRequiredContactRoles The configuration will require at least one of each of the
	// specified roles assigned to contacts.
	//
	// The `RoleAssignment` is associated through the
	// `role_assignments` list property of the network service configuration.
	NscRequiredContactRoles []string `json:"nsc_required_contact_roles,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// Capacity The capacity of the service in Mbps. When null,
	// the maximum capacity will be used.
	Capacity *int `json:"capacity,omitempty"`

	// Diversity Same value as the corresponding `ProductOffering`.
	//
	// The service can be delivered over multiple handovers from
	// the exchange to the `service_provider`.
	//
	// The `diversity` denotes the number of handovers between the
	// exchange and the service provider. A value of two signals a
	// redundant service.
	//
	// Only one network service configuration for each `handover` and
	// `cloud_vlan` can be created.
	Diversity int `json:"diversity,omitempty"`

	// ProviderRef For a cloud network service with the exchange first
	// workflow, the `provider_ref` will be a reference
	// to a resource of the cloud provider. (E.g. the UUID of
	// a virtual circuit.)
	//
	// The `provider_ref` is managed by the exchange and its
	// meaning may vary between different cloud services.
	//
	ProviderRef string `json:"provider_ref,omitempty"`

	// CloudKey The cloud key is used to specify to which user or
	// existing circuit of a cloud provider this `network-service`
	// should be provisioned.
	//
	// For example, for a provider like *AWS*, this would be the
	// *account number* (Example: `123456789876`), or for a provider
	// like Azure, this would be the service key
	// (Example: `acl9edcf-f11c-4681-9c7b-6d16b2973997`)
	CloudKey string `json:"cloud_key,omitempty"`
}

CloudNetworkService Cloud Network Service

func (CloudNetworkService) PolymorphicType

func (c CloudNetworkService) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type CloudNetworkServiceConfig

type CloudNetworkServiceConfig struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NetworkService The id of the configured network service.
	NetworkService string `json:"network_service,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a polymorphic vlan configuration
	VLANConfig VLANConfig `tf:"vlan_config" json:"-"`
	// VLANConfigRaw contains the vlan config response data
	VLANConfigRaw json.RawMessage `tf:"-" json:"vlan_config,omitempty"`

	// Handover The handover enumerates the connection and is
	// required for checking diversity constraints.
	//
	// It must be within `1 <= x <= network_service.diversity`.
	//
	Handover int `json:"handover,omitempty"`

	// CloudVLAN If the `provider_vlans` property of the `ProductOffering` is
	// `multi`, a numeric value refers to a specific vlan on the service
	// provider side.
	//
	// Otherwise, if set to `null`, it refers to all unmatched
	// vlan ids on the service provider side. (All vlan ids from the
	// service provider side are presented as tags within any vlans specified
	// in `vlan_config`.)
	//
	// If the `provider_vlans` property of the `ProductOffering` is `single`,
	// the `cloud_vlan` MUST be `null` or MUST NOT be provided.
	CloudVLAN int `json:"cloud_vlan,omitempty"`
}

CloudNetworkServiceConfig Cloud Network Service Config

func (CloudNetworkServiceConfig) PolymorphicType

func (c CloudNetworkServiceConfig) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type CloudNetworkServiceConfigPatch

type CloudNetworkServiceConfigPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount *string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection *string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// Handover The handover enumerates the connection and is
	// required for checking diversity constraints.
	//
	// It must be within `1 <= x <= network_service.diversity`.
	//
	Handover *int `json:"handover,omitempty"`

	// CloudVLAN If the `provider_vlans` property of the `ProductOffering` is
	// `multi`, a numeric value refers to a specific vlan on the service
	// provider side.
	//
	// Otherwise, if set to `null`, it refers to all unmatched
	// vlan ids on the service provider side. (All vlan ids from the
	// service provider side are presented as tags within any vlans specified
	// in `vlan_config`.)
	//
	// If the `provider_vlans` property of the `ProductOffering` is `single`,
	// the `cloud_vlan` MUST be `null` or MUST NOT be provided.
	CloudVLAN *int `json:"cloud_vlan,omitempty"`
}

CloudNetworkServiceConfigPatch Cloud Network Service Config Update

func (CloudNetworkServiceConfigPatch) PolymorphicType

func (c CloudNetworkServiceConfigPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type CloudNetworkServiceConfigRequest

type CloudNetworkServiceConfigRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// NetworkService The id of the `NetworkService` to configure.
	NetworkService string `json:"network_service,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// Handover The handover enumerates the connection and is
	// required for checking diversity constraints.
	//
	// It must be within `1 <= x <= network_service.diversity`.
	//
	Handover int `json:"handover,omitempty"`

	// CloudVLAN If the `provider_vlans` property of the `ProductOffering` is
	// `multi`, a numeric value refers to a specific vlan on the service
	// provider side.
	//
	// Otherwise, if set to `null`, it refers to all unmatched
	// vlan ids on the service provider side. (All vlan ids from the
	// service provider side are presented as tags within any vlans specified
	// in `vlan_config`.)
	//
	// If the `provider_vlans` property of the `ProductOffering` is `single`,
	// the `cloud_vlan` MUST be `null` or MUST NOT be provided.
	CloudVLAN int `json:"cloud_vlan,omitempty"`
}

CloudNetworkServiceConfigRequest Cloud Network Service Config Request

func (CloudNetworkServiceConfigRequest) PolymorphicType

func (c CloudNetworkServiceConfigRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type CloudNetworkServiceConfigUpdate

type CloudNetworkServiceConfigUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// Handover The handover enumerates the connection and is
	// required for checking diversity constraints.
	//
	// It must be within `1 <= x <= network_service.diversity`.
	//
	Handover int `json:"handover,omitempty"`

	// CloudVLAN If the `provider_vlans` property of the `ProductOffering` is
	// `multi`, a numeric value refers to a specific vlan on the service
	// provider side.
	//
	// Otherwise, if set to `null`, it refers to all unmatched
	// vlan ids on the service provider side. (All vlan ids from the
	// service provider side are presented as tags within any vlans specified
	// in `vlan_config`.)
	//
	// If the `provider_vlans` property of the `ProductOffering` is `single`,
	// the `cloud_vlan` MUST be `null` or MUST NOT be provided.
	CloudVLAN int `json:"cloud_vlan,omitempty"`
}

CloudNetworkServiceConfigUpdate Cloud Network Service Config Update

func (CloudNetworkServiceConfigUpdate) PolymorphicType

func (c CloudNetworkServiceConfigUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type CloudNetworkServicePatch

type CloudNetworkServicePatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering *string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount *string `json:"billing_account,omitempty"`

	// Capacity The capacity of the service in Mbps. When null,
	// the maximum capacity will be used.
	Capacity *int `json:"capacity,omitempty"`

	// CloudKey The cloud key is used to specify to which user or
	// existing circuit of a cloud provider this `network-service`
	// should be provisioned.
	//
	// For example, for a provider like *AWS*, this would be the
	// *account number* (Example: `123456789876`), or for a provider
	// like Azure, this would be the service key
	// (Example: `acl9edcf-f11c-4681-9c7b-6d16b2973997`)
	//
	// **Please note: *Any update to this field may be rejected if the
	// service has successfully been provisioned*.**
	CloudKey *string `json:"cloud_key,omitempty"`
}

CloudNetworkServicePatch Cloud Network Service Update

func (CloudNetworkServicePatch) PolymorphicType

func (c CloudNetworkServicePatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type CloudNetworkServiceRequest

type CloudNetworkServiceRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// Capacity The capacity of the service in Mbps. When null,
	// the maximum capacity will be used.
	Capacity *int `json:"capacity,omitempty"`

	// CloudKey The cloud key is used to specify to which user or
	// existing circuit of a cloud provider this `network-service`
	// should be provisioned.
	//
	// For example, for a provider like *AWS*, this would be the
	// *account number* (Example: `123456789876`), or for a provider
	// like Azure, this would be the service key
	// (Example: `acl9edcf-f11c-4681-9c7b-6d16b2973997`)
	CloudKey string `json:"cloud_key,omitempty"`
}

CloudNetworkServiceRequest Cloud Network Service Request

func (CloudNetworkServiceRequest) PolymorphicType

func (c CloudNetworkServiceRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type CloudNetworkServiceUpdate

type CloudNetworkServiceUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// Capacity The capacity of the service in Mbps. When null,
	// the maximum capacity will be used.
	Capacity *int `json:"capacity,omitempty"`

	// CloudKey The cloud key is used to specify to which user or
	// existing circuit of a cloud provider this `network-service`
	// should be provisioned.
	//
	// For example, for a provider like *AWS*, this would be the
	// *account number* (Example: `123456789876`), or for a provider
	// like Azure, this would be the service key
	// (Example: `acl9edcf-f11c-4681-9c7b-6d16b2973997`)
	//
	// **Please note: *Any update to this field may be rejected if the
	// service has successfully been provisioned*.**
	CloudKey string `json:"cloud_key,omitempty"`
}

CloudNetworkServiceUpdate Cloud Network Service Update

func (CloudNetworkServiceUpdate) PolymorphicType

func (c CloudNetworkServiceUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type Conflict

type Conflict struct {
	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType string `json:"resource_type,omitempty"`

	// ResourceID The id of the resource which has a conflict with the
	// request operation on the current resource.
	//
	ResourceID string `json:"resource_id,omitempty"`

	// ResourceProperty Indicates the property where the resource is in use.
	//
	ResourceProperty string `json:"resource_property,omitempty"`

	// RemoteResourceType The type of the conflicting resource.
	//
	RemoteResourceType string `json:"remote_resource_type,omitempty"`

	// RemoteResourceID The id of the conflicting resource. This is in most
	// cases the id of the current resource.
	//
	RemoteResourceID string `json:"remote_resource_id,omitempty"`
}

Conflict A conflict is preventing success

type Connection

type Connection struct {
	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Mode Sets the mode of the connection. The mode can be:
	//
	// - `lag_lacp`: connection is build as a LAG with LACP enabled
	// - `lag_static`: connection is build as LAG with static configuration
	// - `flex_ethernet`: connect is build as a FlexEthernet channel
	// - `standalone`: only one port is allowed in this connection without
	// any bundling.
	//
	Mode string `json:"mode,omitempty"`

	// LacpTimeout This sets the LACP Timeout mode. Both ends of the connections need
	// to be configured the same.
	//
	LacpTimeout *string `json:"lacp_timeout,omitempty"`

	// ProductOffering The product offering must match the type `connection`.
	ProductOffering string `json:"product_offering,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Name is a name
	Name string `json:"name,omitempty"`

	// Ports References to the port belonging to this connection. Typically
	// all ports within one connection are distributed over the same
	// device.
	//
	Ports []string `json:"ports,omitempty"`

	// PortReservations A list of `port-reservations` for this connection.
	PortReservations []string `json:"port_reservations,omitempty"`

	// Pop The ID of the point of presence (see `/pops`), where
	// the physical port(s) are present.
	//
	Pop string `json:"pop,omitempty"`

	// Speed Shows the total bandwidth of the connection in Mbit/s.
	//
	Speed *int `json:"speed,omitempty"`

	// CapacityAllocated Sum of the bandwidth of all network services using
	// the connection in Mbit/s.
	CapacityAllocated int `json:"capacity_allocated,omitempty"`

	// CapacityAllocationLimit Maximum allocatable capacity of the connection in Mbit/s.
	// When `null`, the exchange does not impose any limit.
	//
	CapacityAllocationLimit int `json:"capacity_allocation_limit,omitempty"`

	// VLANTypes A list of vlan config types you can configure using
	// this connection.
	VLANTypes []string `json:"vlan_types,omitempty"`

	// OuterVLANEthertypes The ethertype of the outer tag in hexadecimal notation.
	//
	OuterVLANEthertypes []string `json:"outer_vlan_ethertypes,omitempty"`

	// PortQuantity The number of ports which should be allocated
	// for this connection.
	PortQuantity int `json:"port_quantity,omitempty"`

	// SubscriberSideDemarcs The workflow for allocating ports is dependent on the
	// `cross_connect_initiator` property of the
	// `product_offering`:
	//
	// **Cross-Connect initiator: exchange**
	//
	// The subscriber needs to provide a
	// list of demarc information.
	//
	//
	// At least one needs to be provided, but not more than
	// `port_quantity`.
	//
	// The content is interpreted by the exchange and may
	// contain a reference to a pre-existing cross connect order
	// or information required for patching in a structured
	// format (e.g.
	// `<pp-identifier>.<hu-identifier>.<slot-identifier>.<port-identifier>`).
	//
	// Please refer to the usage guide of the internet exchange.
	//
	// ---
	//
	// **Cross-Connect initiator: subscriber**
	//
	// This field can be omitted, when the cross connect
	// initiator is the `subscriber`.
	SubscriberSideDemarcs []string `json:"subscriber_side_demarcs,omitempty"`
}

Connection Connection

type ConnectionPatch

type ConnectionPatch struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount *string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Mode Sets the mode of the connection. The mode can be:
	//
	// - `lag_lacp`: connection is build as a LAG with LACP enabled
	// - `lag_static`: connection is build as LAG with static configuration
	// - `flex_ethernet`: connect is build as a FlexEthernet channel
	// - `standalone`: only one port is allowed in this connection without
	// any bundling.
	//
	Mode *string `json:"mode,omitempty"`

	// LacpTimeout This sets the LACP Timeout mode. Both ends of the connections need
	// to be configured the same.
	//
	LacpTimeout *string `json:"lacp_timeout,omitempty"`

	// ProductOffering The product offering must match the type `connection`.
	ProductOffering *string `json:"product_offering,omitempty"`
}

ConnectionPatch Connection Update

type ConnectionProductOffering

type ConnectionProductOffering struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Name Name of the product
	Name string `json:"name,omitempty"`

	// DisplayName is a display_name
	DisplayName string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// CrossConnectInitiator A cross connect can be initiated by either the
	// exchange or the subscriber.
	//
	// This property affects which side has to provide
	// a LOA and demarc information.
	CrossConnectInitiator string `json:"cross_connect_initiator,omitempty"`

	// HandoverPop The ID of the point of presence (see `/pops`), where
	// the physical port will be present.
	//
	HandoverPop *string `json:"handover_pop,omitempty"`

	// MaximumPortQuantity The maximum amount of ports which can be aggregated
	// in the connection. `null` means no limit.
	MaximumPortQuantity *int `json:"maximum_port_quantity,omitempty"`

	// RequiredContactRoles The connection will require at least one of each of the
	// specified roles assigned to contacts.
	//
	// The role assignments are associated with the connection
	// through the `role_assignments` list property.
	RequiredContactRoles []string `json:"required_contact_roles,omitempty"`
}

ConnectionProductOffering Connection Product Offering

func (ConnectionProductOffering) PolymorphicType

func (c ConnectionProductOffering) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type ConnectionProductOfferingPatch

type ConnectionProductOfferingPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID *string `json:"id,omitempty"`

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

	// DisplayName is a display_name
	DisplayName *string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType *string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork *string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea *string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed *int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider *string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed *bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed *bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// CrossConnectInitiator A cross connect can be initiated by either the
	// exchange or the subscriber.
	//
	// This property affects which side has to provide
	// a LOA and demarc information.
	CrossConnectInitiator *string `json:"cross_connect_initiator,omitempty"`

	// HandoverPop The ID of the point of presence (see `/pops`), where
	// the physical port will be present.
	//
	HandoverPop *string `json:"handover_pop,omitempty"`

	// MaximumPortQuantity The maximum amount of ports which can be aggregated
	// in the connection. `null` means no limit.
	MaximumPortQuantity *int `json:"maximum_port_quantity,omitempty"`

	// RequiredContactRoles The connection will require at least one of each of the
	// specified roles assigned to contacts.
	//
	// The role assignments are associated with the connection
	// through the `role_assignments` list property.
	RequiredContactRoles []string `json:"required_contact_roles,omitempty"`
}

ConnectionProductOfferingPatch Conncetion Product Offering

func (ConnectionProductOfferingPatch) PolymorphicType

func (c ConnectionProductOfferingPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type ConnectionRequest

type ConnectionRequest struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Mode Sets the mode of the connection. The mode can be:
	//
	// - `lag_lacp`: connection is build as a LAG with LACP enabled
	// - `lag_static`: connection is build as LAG with static configuration
	// - `flex_ethernet`: connect is build as a FlexEthernet channel
	// - `standalone`: only one port is allowed in this connection without
	// any bundling.
	//
	Mode string `json:"mode,omitempty"`

	// LacpTimeout This sets the LACP Timeout mode. Both ends of the connections need
	// to be configured the same.
	//
	LacpTimeout *string `json:"lacp_timeout,omitempty"`

	// ProductOffering The product offering must match the type `connection`.
	ProductOffering string `json:"product_offering,omitempty"`

	// PortQuantity The number of `PortReservation`s that will be
	// created for this connection.
	PortQuantity int `json:"port_quantity,omitempty"`

	// SubscriberSideDemarcs The workflow for allocating ports is dependent on the
	// `cross_connect_initiator` property of the
	// `product_offering`:
	//
	// **Cross-Connect initiator: exchange**
	//
	// The subscriber needs to provide a
	// list of demarc information.
	//
	// At least one needs to be provided, but not more than
	// `port_quantity`.
	//
	// The content is interpreted by the exchange and may
	// contain a reference to a pre-existing cross connect order
	// or information required for patching in a structured
	// format (e.g.
	// `<pp-identifier>.<hu-identifier>.<slot-identifier>.<port-identifier>`).
	//
	// Please refer to the usage guide of the internet exchange.
	//
	// ---
	//
	// **Cross-Connect initiator: subscriber**
	//
	// This field can be omitted, when the cross connect
	// initiator is the `subscriber`.
	SubscriberSideDemarcs []string `json:"subscriber_side_demarcs,omitempty"`

	// ConnectingParty Name of the service provider who establishes
	// connectivity on your behalf.
	//
	// This is only relevant, if the cross connect initiator
	// is the `subscriber` and might be `null`.
	//
	// Please refer to the usage guide of the internet exchange.
	ConnectingParty *string `json:"connecting_party,omitempty"`
}

ConnectionRequest Request a new connection

type ConnectionUpdate

type ConnectionUpdate struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Mode Sets the mode of the connection. The mode can be:
	//
	// - `lag_lacp`: connection is build as a LAG with LACP enabled
	// - `lag_static`: connection is build as LAG with static configuration
	// - `flex_ethernet`: connect is build as a FlexEthernet channel
	// - `standalone`: only one port is allowed in this connection without
	// any bundling.
	//
	Mode string `json:"mode,omitempty"`

	// LacpTimeout This sets the LACP Timeout mode. Both ends of the connections need
	// to be configured the same.
	//
	LacpTimeout *string `json:"lacp_timeout,omitempty"`

	// ProductOffering The product offering must match the type `connection`.
	ProductOffering string `json:"product_offering,omitempty"`
}

ConnectionUpdate Connection Update

type ConnectionsCancellationPolicyQuery

type ConnectionsCancellationPolicyQuery struct {
	// DecommissionAt is a decommission_at
	DecommissionAt string `json:"decommission_at,omitempty"`
}

ConnectionsCancellationPolicyQuery has all query parameters for ConnectionsCancellationPolicy

func (*ConnectionsCancellationPolicyQuery) RawQuery

RawQuery creates a query string for ConnectionsCancellationPolicyQuery

type ConnectionsListQuery

type ConnectionsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// StateIsNot is a state__is_not
	StateIsNot string `json:"state__is_not,omitempty"`

	// Mode is a mode
	Mode string `json:"mode,omitempty"`

	// ModeIsNot is a mode__is_not
	ModeIsNot string `json:"mode__is_not,omitempty"`

	// Name is a name
	Name string `json:"name,omitempty"`

	// MetroAreaNetwork is a metro_area_network
	MetroAreaNetwork string `json:"metro_area_network,omitempty"`

	// Pop is a pop
	Pop string `json:"pop,omitempty"`

	// Facility is a facility
	Facility string `json:"facility,omitempty"`

	// RoleAssignments is a role_assignments
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Contacts is a contacts
	Contacts []string `json:"contacts,omitempty"`

	// ExternalRef is a external_ref
	ExternalRef string `json:"external_ref,omitempty"`
}

ConnectionsListQuery has all query parameters for ConnectionsList

func (*ConnectionsListQuery) RawQuery

func (c *ConnectionsListQuery) RawQuery() string

RawQuery creates a query string for ConnectionsListQuery

type Contact

type Contact struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Name A name of a person or an organisation
	Name *string `json:"name,omitempty"`

	// Telephone The telephone number in E.164 Phone Number Formatting
	Telephone *string `json:"telephone,omitempty"`

	// Email The email of the legal company entity.
	//
	Email *string `json:"email,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

Contact Contact

type ContactPatch

type ContactPatch struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Name A name of a person or an organisation
	Name *string `json:"name,omitempty"`

	// Telephone The telephone number in E.164 Phone Number Formatting
	Telephone *string `json:"telephone,omitempty"`

	// Email The email of the legal company entity.
	//
	Email *string `json:"email,omitempty"`
}

ContactPatch Contact Update

type ContactRequest

type ContactRequest struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Name A name of a person or an organisation
	Name *string `json:"name,omitempty"`

	// Telephone The telephone number in E.164 Phone Number Formatting
	Telephone *string `json:"telephone,omitempty"`

	// Email The email of the legal company entity.
	//
	Email *string `json:"email,omitempty"`
}

ContactRequest Contact Create Request

type ContactUpdate

type ContactUpdate struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Name A name of a person or an organisation
	Name *string `json:"name,omitempty"`

	// Telephone The telephone number in E.164 Phone Number Formatting
	Telephone *string `json:"telephone,omitempty"`

	// Email The email of the legal company entity.
	//
	Email *string `json:"email,omitempty"`
}

ContactUpdate Contact Update

type ContactsListQuery

type ContactsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// ManagingAccount is a managing_account
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount is a consuming_account
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef is a external_ref
	ExternalRef string `json:"external_ref,omitempty"`
}

ContactsListQuery has all query parameters for ContactsList

func (*ContactsListQuery) RawQuery

func (c *ContactsListQuery) RawQuery() string

RawQuery creates a query string for ContactsListQuery

type Date

type Date time.Time

Date is a date only time type representing a date without time.

func MustParseDate

func MustParseDate(value string) Date

MustParseDate decodes a Date using ParseDate, but will panic in case of an error.

func ParseDate

func ParseDate(value string) (Date, error)

ParseDate decodes a date from a string

func (Date) MarshalJSON

func (d Date) MarshalJSON() ([]byte, error)

MarshalJSON returns the time in date format

func (Date) String

func (d Date) String() string

String implements the stringer interface for Date

func (*Date) UnmarshalJSON

func (d *Date) UnmarshalJSON(b []byte) error

UnmarshalJSON parses the json value of a date

type DenyMemberJoiningRule

type DenyMemberJoiningRule struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account to which access to the
	// network service should be granted or denied.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NetworkService is a network_service
	NetworkService string `json:"network_service,omitempty"`
}

DenyMemberJoiningRule A rule for members joining a private vlan

func (DenyMemberJoiningRule) PolymorphicType

func (d DenyMemberJoiningRule) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type DenyMemberJoiningRulePatch

type DenyMemberJoiningRulePatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account to which access to the
	// network service should be granted or denied.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`
}

DenyMemberJoiningRulePatch A vlan member joining rule update

func (DenyMemberJoiningRulePatch) PolymorphicType

func (d DenyMemberJoiningRulePatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type DenyMemberJoiningRuleRequest

type DenyMemberJoiningRuleRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account to which access to the
	// network service should be granted or denied.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// NetworkService is a network_service
	NetworkService string `json:"network_service,omitempty"`
}

DenyMemberJoiningRuleRequest A new vlan member joining rule

func (DenyMemberJoiningRuleRequest) PolymorphicType

func (d DenyMemberJoiningRuleRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type DenyMemberJoiningRuleUpdate

type DenyMemberJoiningRuleUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account to which access to the
	// network service should be granted or denied.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`
}

DenyMemberJoiningRuleUpdate A vlan member joining rule update

func (DenyMemberJoiningRuleUpdate) PolymorphicType

func (d DenyMemberJoiningRuleUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type Device

type Device struct {
	// Name Name of the device
	//
	Name string `json:"name,omitempty"`

	// Pop The `PointOfPresence` the device is in.
	Pop string `json:"pop,omitempty"`

	// Capabilities is a capabilities
	Capabilities []*DeviceCapability `json:"capabilities,omitempty"`

	// Facility Identifier of the facility where the device
	// is physically based.
	Facility string `json:"facility,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

Device Device

type DeviceCapability

type DeviceCapability struct {
	// MediaType The media type of the port (e.g. 1000BASE-LX, 10GBASE-LR, ...)
	//
	MediaType string `json:"media_type,omitempty"`

	// Speed Speed of port in Mbit/s
	//
	Speed int `json:"speed,omitempty"`

	// MaxLag Maximum count of ports which can be bundled to a max_lag
	MaxLag int `json:"max_lag,omitempty"`

	// Availability Count of available ports on device
	//
	Availability int `json:"availability,omitempty"`
}

DeviceCapability Device Capability

type DeviceConnection

type DeviceConnection struct {
	// CapacityMax is a capacity_max
	CapacityMax int `json:"capacity_max,omitempty"`

	// Device is a device
	Device string `json:"device,omitempty"`

	// ConnectedDevice is a connected_device
	ConnectedDevice string `json:"connected_device,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

DeviceConnection Device Connection

type DevicesListQuery

type DevicesListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// Name is a name
	Name string `json:"name,omitempty"`

	// CapabilityMediaType is a capability_media_type
	CapabilityMediaType string `json:"capability_media_type,omitempty"`

	// CapabilitySpeed is a capability_speed
	CapabilitySpeed int `json:"capability_speed,omitempty"`

	// CapabilitySpeedLt is a capability_speed__lt
	CapabilitySpeedLt int `json:"capability_speed__lt,omitempty"`

	// CapabilitySpeedLte is a capability_speed__lte
	CapabilitySpeedLte int `json:"capability_speed__lte,omitempty"`

	// CapabilitySpeedGt is a capability_speed__gt
	CapabilitySpeedGt int `json:"capability_speed__gt,omitempty"`

	// CapabilitySpeedGte is a capability_speed__gte
	CapabilitySpeedGte int `json:"capability_speed__gte,omitempty"`

	// Facility is a facility
	Facility string `json:"facility,omitempty"`

	// Pop is a pop
	Pop string `json:"pop,omitempty"`

	// MetroAreaNetwork is a metro_area_network
	MetroAreaNetwork string `json:"metro_area_network,omitempty"`
}

DevicesListQuery has all query parameters for DevicesList

func (*DevicesListQuery) RawQuery

func (d *DevicesListQuery) RawQuery() string

RawQuery creates a query string for DevicesListQuery

type Event

type Event struct {
	// Serial is a serial
	Serial int `json:"serial,omitempty"`

	// Account is a account
	Account string `json:"account,omitempty"`

	// Type is a type
	Type string `json:"type,omitempty"`

	// Payload is a payload
	Payload map[string]interface{} `json:"payload,omitempty"`

	// Timestamp is a timestamp
	Timestamp time.Time `json:"timestamp,omitempty"`
}

Event Event

type ExchangeLanNetworkProductOffering

type ExchangeLanNetworkProductOffering struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Name Name of the product
	Name string `json:"name,omitempty"`

	// DisplayName is a display_name
	DisplayName string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// ProviderVLANs The `NetworkService` provides `single` or `multi`ple vlans.
	ProviderVLANs string `json:"provider_vlans,omitempty"`

	// ServiceMetroAreaNetwork Id of the `MetroAreaNetwork`.
	// The service is directly provided on the metro area network.
	//
	// In case of a `p2p_vc`, the `service_metro_area_network` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroAreaNetwork string `json:"service_metro_area_network,omitempty"`

	// ServiceMetroArea Id of the `MetroArea`. The service is delivered
	// in this metro area.
	//
	// In case of a `p2p_vc`, the `service_metro_area` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroArea string `json:"service_metro_area,omitempty"`

	// BandwidthMin When configuring access to the network service, at least
	// this `capacity` must be provided.
	BandwidthMin int `json:"bandwidth_min,omitempty"`

	// BandwidthMax When not `null`, this value enforces a mandatory
	// rate limit for all network service configs.
	BandwidthMax int `json:"bandwidth_max,omitempty"`

	// ExchangeLanNetworkService The id of the exchange lan network service.
	ExchangeLanNetworkService string `json:"exchange_lan_network_service,omitempty"`
}

ExchangeLanNetworkProductOffering Exchange Lan Network Product Offering

func (ExchangeLanNetworkProductOffering) PolymorphicType

func (e ExchangeLanNetworkProductOffering) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type ExchangeLanNetworkProductOfferingPatch

type ExchangeLanNetworkProductOfferingPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID *string `json:"id,omitempty"`

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

	// DisplayName is a display_name
	DisplayName *string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType *string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork *string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea *string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed *int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider *string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed *bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed *bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// ProviderVLANs The `NetworkService` provides `single` or `multi`ple vlans.
	ProviderVLANs *string `json:"provider_vlans,omitempty"`

	// ServiceMetroAreaNetwork Id of the `MetroAreaNetwork`.
	// The service is directly provided on the metro area network.
	//
	// In case of a `p2p_vc`, the `service_metro_area_network` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroAreaNetwork *string `json:"service_metro_area_network,omitempty"`

	// ServiceMetroArea Id of the `MetroArea`. The service is delivered
	// in this metro area.
	//
	// In case of a `p2p_vc`, the `service_metro_area` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroArea *string `json:"service_metro_area,omitempty"`

	// BandwidthMin When configuring access to the network service, at least
	// this `capacity` must be provided.
	BandwidthMin *int `json:"bandwidth_min,omitempty"`

	// BandwidthMax When not `null`, this value enforces a mandatory
	// rate limit for all network service configs.
	BandwidthMax *int `json:"bandwidth_max,omitempty"`

	// ExchangeLanNetworkService The id of the exchange lan network service.
	ExchangeLanNetworkService *string `json:"exchange_lan_network_service,omitempty"`
}

ExchangeLanNetworkProductOfferingPatch Exchange Lan Network Product Offering

func (ExchangeLanNetworkProductOfferingPatch) PolymorphicType

func (e ExchangeLanNetworkProductOfferingPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type ExchangeLanNetworkService

type ExchangeLanNetworkService struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NscRequiredContactRoles The configuration will require at least one of each of the
	// specified roles assigned to contacts.
	//
	// The `RoleAssignment` is associated through the
	// `role_assignments` list property of the network service configuration.
	NscRequiredContactRoles []string `json:"nsc_required_contact_roles,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Name Exchange-dependent service name, will be shown on the invoice.
	Name string `json:"name,omitempty"`

	// MetroAreaNetwork Id of the `MetroAreaNetwork` where
	// the exchange lan network service is directly provided.
	//
	// Same as `service_metro_area_network` on the related
	// `ProductOffering`.
	//
	MetroAreaNetwork string `json:"metro_area_network,omitempty"`

	// PeeringdbIxid PeeringDB ixid
	PeeringdbIxid *int `json:"peeringdb_ixid,omitempty"`

	// IxfdbIxid id of ixfdb
	IxfdbIxid *int `json:"ixfdb_ixid,omitempty"`

	// NetworkFeatures is a network_features
	NetworkFeatures []string `json:"network_features,omitempty"`

	// SubnetV4 IPv4 subnet in [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)
	// CIDR notation.
	//
	SubnetV4 string `json:"subnet_v4,omitempty"`

	// SubnetV6 IPv6 subnet in hexadecimal colon separated CIDR notation.
	//
	SubnetV6 string `json:"subnet_v6,omitempty"`

	// ProductOffering *deprecation notice*
	ProductOffering *string `json:"product_offering,omitempty"`
}

ExchangeLanNetworkService Exchange Lan Network Service

func (ExchangeLanNetworkService) PolymorphicType

func (e ExchangeLanNetworkService) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type ExchangeLanNetworkServiceConfig

type ExchangeLanNetworkServiceConfig struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NetworkService The id of the configured network service.
	NetworkService string `json:"network_service,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a polymorphic vlan configuration
	VLANConfig VLANConfig `tf:"vlan_config" json:"-"`
	// VLANConfigRaw contains the vlan config response data
	VLANConfigRaw json.RawMessage `tf:"-" json:"vlan_config,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// ASNs is a asns
	ASNs []int `json:"asns,omitempty"`

	// Macs A list of mac-address IDs.
	Macs []string `json:"macs,omitempty"`

	// IPs A list of ip-address IDs.
	//
	// Allocation of IP Addresses might be deferred depending on
	// the IXP implementation. No assumption should be made.
	IPs []string `json:"ips,omitempty"`

	// Listed The customer wants to be featured on the member list
	Listed bool `json:"listed,omitempty"`

	// ProductOffering The product offering must match the type `exchange_lan`
	// and must refer to the related network service through
	// the `exchange_lan_network_service` property.
	ProductOffering string `json:"product_offering,omitempty"`
}

ExchangeLanNetworkServiceConfig Exchange Lan Network Service Config

func (ExchangeLanNetworkServiceConfig) PolymorphicType

func (e ExchangeLanNetworkServiceConfig) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type ExchangeLanNetworkServiceConfigPatch

type ExchangeLanNetworkServiceConfigPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount *string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection *string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// ASNs is a asns
	ASNs []int `json:"asns,omitempty"`

	// Macs A list of mac-address IDs.
	Macs []string `json:"macs,omitempty"`

	// IPs A list of ip-address IDs.
	//
	// Allocation of IP Addresses might be deferred depending on
	// the IXP implementation. No assumption should be made.
	IPs []string `json:"ips,omitempty"`

	// Listed The customer wants to be featured on the member list
	Listed *bool `json:"listed,omitempty"`
}

ExchangeLanNetworkServiceConfigPatch Exchange Lan Network Service Config Update

func (ExchangeLanNetworkServiceConfigPatch) PolymorphicType

func (e ExchangeLanNetworkServiceConfigPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type ExchangeLanNetworkServiceConfigRequest

type ExchangeLanNetworkServiceConfigRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// NetworkService The id of the `NetworkService` to configure.
	NetworkService string `json:"network_service,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// ASNs is a asns
	ASNs []int `json:"asns,omitempty"`

	// Macs A list of mac-address IDs.
	Macs []string `json:"macs,omitempty"`

	// IPs A list of ip-address IDs.
	//
	// Allocation of IP Addresses might be deferred depending on
	// the IXP implementation. No assumption should be made.
	IPs []string `json:"ips,omitempty"`

	// Listed The customer wants to be featured on the member list
	Listed bool `json:"listed,omitempty"`

	// ProductOffering The product offering must match the type `exchange_lan`
	// and must refer to the related network service through
	// the `exchange_lan_network_service` property.
	ProductOffering string `json:"product_offering,omitempty"`
}

ExchangeLanNetworkServiceConfigRequest Exchange Lan Network Service Config Request

func (ExchangeLanNetworkServiceConfigRequest) PolymorphicType

func (e ExchangeLanNetworkServiceConfigRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type ExchangeLanNetworkServiceConfigUpdate

type ExchangeLanNetworkServiceConfigUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// ASNs is a asns
	ASNs []int `json:"asns,omitempty"`

	// Macs A list of mac-address IDs.
	Macs []string `json:"macs,omitempty"`

	// IPs A list of ip-address IDs.
	//
	// Allocation of IP Addresses might be deferred depending on
	// the IXP implementation. No assumption should be made.
	IPs []string `json:"ips,omitempty"`

	// Listed The customer wants to be featured on the member list
	Listed bool `json:"listed,omitempty"`
}

ExchangeLanNetworkServiceConfigUpdate Exchange Lan Network Service Config Update

func (ExchangeLanNetworkServiceConfigUpdate) PolymorphicType

func (e ExchangeLanNetworkServiceConfigUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type FacilitiesListQuery

type FacilitiesListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// CapabilityMediaType is a capability_media_type
	CapabilityMediaType string `json:"capability_media_type,omitempty"`

	// CapabilitySpeed is a capability_speed
	CapabilitySpeed int `json:"capability_speed,omitempty"`

	// CapabilitySpeedLt is a capability_speed__lt
	CapabilitySpeedLt int `json:"capability_speed__lt,omitempty"`

	// CapabilitySpeedLte is a capability_speed__lte
	CapabilitySpeedLte int `json:"capability_speed__lte,omitempty"`

	// CapabilitySpeedGt is a capability_speed__gt
	CapabilitySpeedGt int `json:"capability_speed__gt,omitempty"`

	// CapabilitySpeedGte is a capability_speed__gte
	CapabilitySpeedGte int `json:"capability_speed__gte,omitempty"`

	// OrganisationName is a organisation_name
	OrganisationName string `json:"organisation_name,omitempty"`

	// MetroArea is a metro_area
	MetroArea string `json:"metro_area,omitempty"`

	// MetroAreaNetwork is a metro_area_network
	MetroAreaNetwork string `json:"metro_area_network,omitempty"`

	// AddressCountry is a address_country
	AddressCountry string `json:"address_country,omitempty"`

	// AddressLocality is a address_locality
	AddressLocality string `json:"address_locality,omitempty"`

	// PostalCode is a postal_code
	PostalCode string `json:"postal_code,omitempty"`
}

FacilitiesListQuery has all query parameters for FacilitiesList

func (*FacilitiesListQuery) RawQuery

func (f *FacilitiesListQuery) RawQuery() string

RawQuery creates a query string for FacilitiesListQuery

type Facility

type Facility struct {
	// Name Name of the Datacenter as called by the operator
	//
	Name string `json:"name,omitempty"`

	// MetroArea Id of the `MetroArea` the DC is located in.
	//
	MetroArea string `json:"metro_area,omitempty"`

	// AddressCountry ISO 3166-1 alpha-2 country code, for example DE
	//
	AddressCountry string `json:"address_country,omitempty"`

	// AddressLocality The locality/city. For example, Mountain View.
	AddressLocality string `json:"address_locality,omitempty"`

	// AddressRegion The region. For example, CA
	AddressRegion string `json:"address_region,omitempty"`

	// PostalCode A postal code. For example, 9404
	PostalCode string `json:"postal_code,omitempty"`

	// StreetAddress The street address. For example, 1600 Amphitheatre Pkwy.
	StreetAddress string `json:"street_address,omitempty"`

	// PeeringdbFacilityID [PeeringDB](https://www.peeringdb.com) facitlity ID,
	// can be extracted from the url https://www.peeringdb.com/fac/$id
	//
	PeeringdbFacilityID *int `json:"peeringdb_facility_id,omitempty"`

	// OrganisationName Name of Datacenter operator
	//
	OrganisationName string `json:"organisation_name,omitempty"`

	// Pops List of pops reachable from the `Facility`.
	Pops []string `json:"pops,omitempty"`

	// Latitude Latitude of the facility's location.
	//
	Latitude *float64 `json:"latitude,omitempty"`

	// Longitude Longitude of the facility's location.
	//
	Longitude *float64 `json:"longitude,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

Facility Facility

type IPAddress

type IPAddress struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Version The version of the internet protocol.
	//
	Version int `json:"version,omitempty"`

	// Address IPv4 or IPv6 Address in the following format:
	// - IPv4: [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)
	// - IPv6: hexadecimal colon separated notation
	//
	Address string `json:"address,omitempty"`

	// PrefixLength The CIDR ip prefix length
	//
	PrefixLength int `json:"prefix_length,omitempty"`

	// FQDN is a fqdn
	FQDN *string `json:"fqdn,omitempty"`

	// ValidNotBefore is a valid_not_before
	ValidNotBefore *time.Time `json:"valid_not_before,omitempty"`

	// ValidNotAfter is a valid_not_after
	ValidNotAfter *time.Time `json:"valid_not_after,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

IPAddress IP-Address

type IPAddressPatch

type IPAddressPatch struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Version The version of the internet protocol.
	//
	Version *int `json:"version,omitempty"`

	// Address IPv4 or IPv6 Address in the following format:
	// - IPv4: [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)
	// - IPv6: hexadecimal colon separated notation
	//
	Address *string `json:"address,omitempty"`

	// PrefixLength The CIDR ip prefix length
	//
	PrefixLength *int `json:"prefix_length,omitempty"`

	// FQDN is a fqdn
	FQDN *string `json:"fqdn,omitempty"`

	// ValidNotBefore is a valid_not_before
	ValidNotBefore *time.Time `json:"valid_not_before,omitempty"`

	// ValidNotAfter is a valid_not_after
	ValidNotAfter *time.Time `json:"valid_not_after,omitempty"`
}

IPAddressPatch IP-Address Update

type IPAddressRequest

type IPAddressRequest struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Version The version of the internet protocol.
	//
	Version int `json:"version,omitempty"`

	// Address IPv4 or IPv6 Address in the following format:
	// - IPv4: [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)
	// - IPv6: hexadecimal colon separated notation
	//
	Address string `json:"address,omitempty"`

	// PrefixLength The CIDR ip prefix length
	//
	PrefixLength int `json:"prefix_length,omitempty"`

	// FQDN is a fqdn
	FQDN *string `json:"fqdn,omitempty"`

	// ValidNotBefore is a valid_not_before
	ValidNotBefore *time.Time `json:"valid_not_before,omitempty"`

	// ValidNotAfter is a valid_not_after
	ValidNotAfter *time.Time `json:"valid_not_after,omitempty"`
}

IPAddressRequest IP-Address / Prefix allocation Request

type IPAddressUpdate

type IPAddressUpdate struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Version The version of the internet protocol.
	//
	Version int `json:"version,omitempty"`

	// Address IPv4 or IPv6 Address in the following format:
	// - IPv4: [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)
	// - IPv6: hexadecimal colon separated notation
	//
	Address string `json:"address,omitempty"`

	// PrefixLength The CIDR ip prefix length
	//
	PrefixLength int `json:"prefix_length,omitempty"`

	// FQDN is a fqdn
	FQDN *string `json:"fqdn,omitempty"`

	// ValidNotBefore is a valid_not_before
	ValidNotBefore *time.Time `json:"valid_not_before,omitempty"`

	// ValidNotAfter is a valid_not_after
	ValidNotAfter *time.Time `json:"valid_not_after,omitempty"`
}

IPAddressUpdate IP-Address Update

type IPsListQuery

type IPsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// ManagingAccount is a managing_account
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount is a consuming_account
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef is a external_ref
	ExternalRef string `json:"external_ref,omitempty"`

	// NetworkService is a network_service
	NetworkService string `json:"network_service,omitempty"`

	// NetworkServiceConfig is a network_service_config
	NetworkServiceConfig string `json:"network_service_config,omitempty"`

	// NetworkFeature is a network_feature
	NetworkFeature string `json:"network_feature,omitempty"`

	// NetworkFeatureConfig is a network_feature_config
	NetworkFeatureConfig string `json:"network_feature_config,omitempty"`

	// Version is a version
	Version int `json:"version,omitempty"`

	// FQDN is a fqdn
	FQDN string `json:"fqdn,omitempty"`

	// PrefixLength is a prefix_length
	PrefixLength int `json:"prefix_length,omitempty"`

	// ValidNotBefore is a valid_not_before
	ValidNotBefore string `json:"valid_not_before,omitempty"`

	// ValidNotAfter is a valid_not_after
	ValidNotAfter string `json:"valid_not_after,omitempty"`
}

IPsListQuery has all query parameters for IPsList

func (*IPsListQuery) RawQuery

func (i *IPsListQuery) RawQuery() string

RawQuery creates a query string for IPsListQuery

type IXPSpecificFeatureFlag

type IXPSpecificFeatureFlag struct {
	// Name The name of the feature flag.
	//
	Name string `json:"name,omitempty"`

	// Description The description of the feature flag.
	//
	Description string `json:"description,omitempty"`

	// Mandatory This feature will always be enabled, even if not provided in
	// the corresponding config's list of `flags`.
	//
	Mandatory bool `json:"mandatory,omitempty"`
}

IXPSpecificFeatureFlag IXP-Specific Feature Flag

type IXPSpecificFeatureFlagConfig

type IXPSpecificFeatureFlagConfig struct {
	// Name The name of the feature flag.
	//
	Name string `json:"name,omitempty"`

	// Enabled Enable the feature.
	//
	// *Mandatory features can not be disabled*.
	Enabled bool `json:"enabled,omitempty"`
}

IXPSpecificFeatureFlagConfig IXP-Specific Feature Flag Configuration

type MP2MPNetworkProductOffering

type MP2MPNetworkProductOffering struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Name Name of the product
	Name string `json:"name,omitempty"`

	// DisplayName is a display_name
	DisplayName string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// ProviderVLANs The `NetworkService` provides `single` or `multi`ple vlans.
	ProviderVLANs string `json:"provider_vlans,omitempty"`

	// ServiceMetroAreaNetwork Id of the `MetroAreaNetwork`.
	// The service is directly provided on the metro area network.
	//
	// In case of a `p2p_vc`, the `service_metro_area_network` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroAreaNetwork string `json:"service_metro_area_network,omitempty"`

	// ServiceMetroArea Id of the `MetroArea`. The service is delivered
	// in this metro area.
	//
	// In case of a `p2p_vc`, the `service_metro_area` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroArea string `json:"service_metro_area,omitempty"`

	// BandwidthMin When configuring access to the network service, at least
	// this `capacity` must be provided.
	BandwidthMin int `json:"bandwidth_min,omitempty"`

	// BandwidthMax When not `null`, this value enforces a mandatory
	// rate limit for all network service configs.
	BandwidthMax int `json:"bandwidth_max,omitempty"`
}

MP2MPNetworkProductOffering MP2MP Network Product Offering

func (MP2MPNetworkProductOffering) PolymorphicType

func (m MP2MPNetworkProductOffering) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type MP2MPNetworkProductOfferingPatch

type MP2MPNetworkProductOfferingPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID *string `json:"id,omitempty"`

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

	// DisplayName is a display_name
	DisplayName *string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType *string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork *string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea *string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed *int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider *string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed *bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed *bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// ProviderVLANs The `NetworkService` provides `single` or `multi`ple vlans.
	ProviderVLANs *string `json:"provider_vlans,omitempty"`

	// ServiceMetroAreaNetwork Id of the `MetroAreaNetwork`.
	// The service is directly provided on the metro area network.
	//
	// In case of a `p2p_vc`, the `service_metro_area_network` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroAreaNetwork *string `json:"service_metro_area_network,omitempty"`

	// ServiceMetroArea Id of the `MetroArea`. The service is delivered
	// in this metro area.
	//
	// In case of a `p2p_vc`, the `service_metro_area` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroArea *string `json:"service_metro_area,omitempty"`

	// BandwidthMin When configuring access to the network service, at least
	// this `capacity` must be provided.
	BandwidthMin *int `json:"bandwidth_min,omitempty"`

	// BandwidthMax When not `null`, this value enforces a mandatory
	// rate limit for all network service configs.
	BandwidthMax *int `json:"bandwidth_max,omitempty"`
}

MP2MPNetworkProductOfferingPatch MP2MP Network Product Offering

func (MP2MPNetworkProductOfferingPatch) PolymorphicType

func (m MP2MPNetworkProductOfferingPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type MP2MPNetworkService

type MP2MPNetworkService struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NscRequiredContactRoles The configuration will require at least one of each of the
	// specified roles assigned to contacts.
	//
	// The `RoleAssignment` is associated through the
	// `role_assignments` list property of the network service configuration.
	NscRequiredContactRoles []string `json:"nsc_required_contact_roles,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// NscProductOfferings An optional list of `ProductOffering`s which can be used in the
	// network service configs for this service.
	NscProductOfferings []string `json:"nsc_product_offerings,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// Public A public mp2mp network service can be joined
	// by everyone on the exchange unless denied by
	// a member-joining-rule.
	//
	// Public network services are visible to other
	// members of the IXP, however only `display_name`, `type`,
	// `product_offering`, `consuming_account` and
	// `managing_account` are made available.
	//
	// Other required fields are redacted.
	Public *bool `json:"public,omitempty"`

	// DisplayName Name of the multi-point to multi-point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of, for example:
	// "Financial Clearance LAN".
	//
	DisplayName *string `json:"display_name,omitempty"`

	// MemberJoiningRules is a member_joining_rules
	MemberJoiningRules []string `json:"member_joining_rules,omitempty"`

	// NetworkFeatures is a network_features
	NetworkFeatures []string `json:"network_features,omitempty"`
}

MP2MPNetworkService MP2MP Network Service

func (MP2MPNetworkService) PolymorphicType

func (m MP2MPNetworkService) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type MP2MPNetworkServiceConfig

type MP2MPNetworkServiceConfig struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NetworkService The id of the configured network service.
	NetworkService string `json:"network_service,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a polymorphic vlan configuration
	VLANConfig VLANConfig `tf:"vlan_config" json:"-"`
	// VLANConfigRaw contains the vlan config response data
	VLANConfigRaw json.RawMessage `tf:"-" json:"vlan_config,omitempty"`

	// Macs is a macs
	Macs []string `json:"macs,omitempty"`
}

MP2MPNetworkServiceConfig MP2MP Network Service Config

func (MP2MPNetworkServiceConfig) PolymorphicType

func (m MP2MPNetworkServiceConfig) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type MP2MPNetworkServiceConfigPatch

type MP2MPNetworkServiceConfigPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount *string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection *string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// Macs is a macs
	Macs []string `json:"macs,omitempty"`
}

MP2MPNetworkServiceConfigPatch MP2MP Network Service Config Update

func (MP2MPNetworkServiceConfigPatch) PolymorphicType

func (m MP2MPNetworkServiceConfigPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type MP2MPNetworkServiceConfigRequest

type MP2MPNetworkServiceConfigRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// NetworkService The id of the `NetworkService` to configure.
	NetworkService string `json:"network_service,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// Macs is a macs
	Macs []string `json:"macs,omitempty"`
}

MP2MPNetworkServiceConfigRequest MP2MP Network Service Config Request

func (MP2MPNetworkServiceConfigRequest) PolymorphicType

func (m MP2MPNetworkServiceConfigRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type MP2MPNetworkServiceConfigUpdate

type MP2MPNetworkServiceConfigUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// Macs is a macs
	Macs []string `json:"macs,omitempty"`
}

MP2MPNetworkServiceConfigUpdate MP2MP Network Service Config Update

func (MP2MPNetworkServiceConfigUpdate) PolymorphicType

func (m MP2MPNetworkServiceConfigUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type MP2MPNetworkServicePatch

type MP2MPNetworkServicePatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering *string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount *string `json:"billing_account,omitempty"`

	// Public A public mp2mp network service can be joined
	// by everyone on the exchange unless denied by
	// a member-joining-rule.
	//
	// Public network services are visible to other
	// members of the IXP, however only `display_name`, `type`,
	// `product_offering`, `consuming_account` and
	// `managing_account` are made available.
	//
	// Other required fields are redacted.
	Public *bool `json:"public,omitempty"`

	// DisplayName Name of the multi-point to multi-point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of, for example:
	// "Financial Clearance LAN".
	//
	DisplayName *string `json:"display_name,omitempty"`
}

MP2MPNetworkServicePatch MP2MP Network Service Update

func (MP2MPNetworkServicePatch) PolymorphicType

func (m MP2MPNetworkServicePatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type MP2MPNetworkServiceRequest

type MP2MPNetworkServiceRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// Public A public mp2mp network service can be joined
	// by everyone on the exchange unless denied by
	// a member-joining-rule.
	//
	// Public network services are visible to other
	// members of the IXP, however only `display_name`, `type`,
	// `product_offering`, `consuming_account` and
	// `managing_account` are made available.
	//
	// Other required fields are redacted.
	Public *bool `json:"public,omitempty"`

	// DisplayName Name of the multi-point to multi-point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of, for example:
	// "Financial Clearance LAN".
	//
	DisplayName *string `json:"display_name,omitempty"`
}

MP2MPNetworkServiceRequest MP2MP Network Service Request

func (MP2MPNetworkServiceRequest) PolymorphicType

func (m MP2MPNetworkServiceRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type MP2MPNetworkServiceUpdate

type MP2MPNetworkServiceUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// Public A public mp2mp network service can be joined
	// by everyone on the exchange unless denied by
	// a member-joining-rule.
	//
	// Public network services are visible to other
	// members of the IXP, however only `display_name`, `type`,
	// `product_offering`, `consuming_account` and
	// `managing_account` are made available.
	//
	// Other required fields are redacted.
	Public *bool `json:"public,omitempty"`

	// DisplayName Name of the multi-point to multi-point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of, for example:
	// "Financial Clearance LAN".
	//
	DisplayName *string `json:"display_name,omitempty"`
}

MP2MPNetworkServiceUpdate MP2MP Network Service Update

func (MP2MPNetworkServiceUpdate) PolymorphicType

func (m MP2MPNetworkServiceUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type MacAddress

type MacAddress struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Address Unicast MAC address, formatted hexadecimal values with colons.
	//
	Address string `json:"address,omitempty"`

	// ValidNotBefore When a mac address is assigned to a NSC, and the current
	// datetime is before this value, then the MAC address *cannot*
	// be used on the peering platform.
	//
	// Afterwards, it is supposed to be available. If the value is
	// `null` or the property does not exist, the mac address is
	// valid from the creation date.
	ValidNotBefore *time.Time `json:"valid_not_before,omitempty"`

	// ValidNotAfter When a mac address is assigned to an NSC, and the current datetime
	// is before this value, the MAC address *can* be used on the peering platform.
	//
	// Afterwards, it is supposed to be unassigned from the NSC and cannot
	// any longer be used on the peering platform.
	//
	// If the value is null or the property does not exist, the MAC address
	// is valid indefinitely. The value may not be in the past.
	ValidNotAfter *time.Time `json:"valid_not_after,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

MacAddress MAC-Address

type MacAddressRequest

type MacAddressRequest struct {
	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// Address Unicast MAC address, formatted hexadecimal values with colons.
	//
	Address string `json:"address,omitempty"`

	// ValidNotBefore When a mac address is assigned to a NSC, and the current
	// datetime is before this value, then the MAC address *cannot*
	// be used on the peering platform.
	//
	// Afterwards, it is supposed to be available. If the value is
	// `null` or the property does not exist, the mac address is
	// valid from the creation date.
	ValidNotBefore *time.Time `json:"valid_not_before,omitempty"`

	// ValidNotAfter When a mac address is assigned to an NSC, and the current datetime
	// is before this value, the MAC address *can* be used on the peering platform.
	//
	// Afterwards, it is supposed to be unassigned from the NSC and cannot
	// any longer be used on the peering platform.
	//
	// If the value is null or the property does not exist, the MAC address
	// is valid indefinitely. The value may not be in the past.
	ValidNotAfter *time.Time `json:"valid_not_after,omitempty"`
}

MacAddressRequest MAC-Address Request

type MacsListQuery

type MacsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// ManagingAccount is a managing_account
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount is a consuming_account
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef is a external_ref
	ExternalRef string `json:"external_ref,omitempty"`

	// NetworkServiceConfig is a network_service_config
	NetworkServiceConfig string `json:"network_service_config,omitempty"`

	// Address is a address
	Address string `json:"address,omitempty"`

	// ValidNotBefore is a valid_not_before
	ValidNotBefore string `json:"valid_not_before,omitempty"`

	// ValidNotAfter is a valid_not_after
	ValidNotAfter string `json:"valid_not_after,omitempty"`
}

MacsListQuery has all query parameters for MacsList

func (*MacsListQuery) RawQuery

func (m *MacsListQuery) RawQuery() string

RawQuery creates a query string for MacsListQuery

type MemberJoiningRule

type MemberJoiningRule interface {
	Polymorphic
}

MemberJoiningRule Polymorphic Member Joining Rule

type MemberJoiningRulePatch

type MemberJoiningRulePatch interface {
	Polymorphic
}

MemberJoiningRulePatch Polymorphic Member Joining Rule Update

type MemberJoiningRuleRequest

type MemberJoiningRuleRequest interface {
	Polymorphic
}

MemberJoiningRuleRequest Polymorphic Member Joining Rule Request

type MemberJoiningRuleUpdate

type MemberJoiningRuleUpdate interface {
	Polymorphic
}

MemberJoiningRuleUpdate Polymorphic Member Joining Rule Update

type MemberJoiningRulesListQuery

type MemberJoiningRulesListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// NetworkService is a network_service
	NetworkService string `json:"network_service,omitempty"`
}

MemberJoiningRulesListQuery has all query parameters for MemberJoiningRulesList

func (*MemberJoiningRulesListQuery) RawQuery

func (m *MemberJoiningRulesListQuery) RawQuery() string

RawQuery creates a query string for MemberJoiningRulesListQuery

type MetroArea

type MetroArea struct {
	// ID is a id
	ID string `json:"id,omitempty"`

	// UnLocode The UN/LOCODE for identifying the metro area.
	//
	UnLocode string `json:"un_locode,omitempty"`

	// IataCode The three letter IATA airport code for identiying the
	// metro area.
	//
	IataCode string `json:"iata_code,omitempty"`

	// DisplayName The name of the metro area. Likely the same as the IATA code.
	//
	DisplayName string `json:"display_name,omitempty"`

	// Facilities List of facilities the metro area network.
	Facilities []string `json:"facilities,omitempty"`

	// MetroAreaNetworks List of networks in the metro area.
	MetroAreaNetworks []string `json:"metro_area_networks,omitempty"`
}

MetroArea MetroArea

type MetroAreaNetwork

type MetroAreaNetwork struct {
	// Name The name of the metro area network.
	//
	Name string `json:"name,omitempty"`

	// MetroArea The id of the metro area.
	//
	MetroArea string `json:"metro_area,omitempty"`

	// ServiceProvider The service provider is operating the network.
	// Usually the exchange.
	//
	ServiceProvider string `json:"service_provider,omitempty"`

	// Pops List of pops in the metro area network.
	Pops []string `json:"pops,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

MetroAreaNetwork MetroAreaNetwork

type MetroAreaNetworksListQuery

type MetroAreaNetworksListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// Name is a name
	Name string `json:"name,omitempty"`

	// MetroArea is a metro_area
	MetroArea string `json:"metro_area,omitempty"`

	// ServiceProvider is a service_provider
	ServiceProvider string `json:"service_provider,omitempty"`
}

MetroAreaNetworksListQuery has all query parameters for MetroAreaNetworksList

func (*MetroAreaNetworksListQuery) RawQuery

func (m *MetroAreaNetworksListQuery) RawQuery() string

RawQuery creates a query string for MetroAreaNetworksListQuery

type MetroAreasListQuery

type MetroAreasListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`
}

MetroAreasListQuery has all query parameters for MetroAreasList

func (*MetroAreasListQuery) RawQuery

func (m *MetroAreasListQuery) RawQuery() string

RawQuery creates a query string for MetroAreasListQuery

type NetworkFeature

type NetworkFeature interface {
	Polymorphic
}

NetworkFeature Polymorphic Network Feature

type NetworkFeatureConfig

type NetworkFeatureConfig interface {
	Polymorphic
}

NetworkFeatureConfig Polymorphic Network Feature Config

type NetworkFeatureConfigPatch

type NetworkFeatureConfigPatch interface {
	Polymorphic
}

NetworkFeatureConfigPatch Polymorphic Network Feauture Config Patch

type NetworkFeatureConfigRequest

type NetworkFeatureConfigRequest interface {
	Polymorphic
}

NetworkFeatureConfigRequest Polymorphic Network Feature Config Request

type NetworkFeatureConfigUpdate

type NetworkFeatureConfigUpdate interface {
	Polymorphic
}

NetworkFeatureConfigUpdate Polymorphic Network Feauture Config Update

type NetworkFeatureConfigsListQuery

type NetworkFeatureConfigsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// StateIsNot is a state__is_not
	StateIsNot string `json:"state__is_not,omitempty"`

	// ManagingAccount is a managing_account
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount is a consuming_account
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef is a external_ref
	ExternalRef string `json:"external_ref,omitempty"`

	// Type is a type
	Type string `json:"type,omitempty"`

	// ServiceConfig is a service_config
	ServiceConfig string `json:"service_config,omitempty"`

	// NetworkFeature is a network_feature
	NetworkFeature string `json:"network_feature,omitempty"`

	// RoleAssignments is a role_assignments
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Contacts is a contacts
	Contacts []string `json:"contacts,omitempty"`
}

NetworkFeatureConfigsListQuery has all query parameters for NetworkFeatureConfigsList

func (*NetworkFeatureConfigsListQuery) RawQuery

func (n *NetworkFeatureConfigsListQuery) RawQuery() string

RawQuery creates a query string for NetworkFeatureConfigsListQuery

type NetworkFeaturesListQuery

type NetworkFeaturesListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// Type is a type
	Type string `json:"type,omitempty"`

	// Required is a required
	Required string `json:"required,omitempty"`

	// NetworkService is a network_service
	NetworkService string `json:"network_service,omitempty"`

	// Name is a name
	Name string `json:"name,omitempty"`
}

NetworkFeaturesListQuery has all query parameters for NetworkFeaturesList

func (*NetworkFeaturesListQuery) RawQuery

func (n *NetworkFeaturesListQuery) RawQuery() string

RawQuery creates a query string for NetworkFeaturesListQuery

type NetworkService

type NetworkService interface {
	Polymorphic
}

NetworkService Polymorphic Network Services

type NetworkServiceCancellationPolicyReadQuery

type NetworkServiceCancellationPolicyReadQuery struct {
	// DecommissionAt is a decommission_at
	DecommissionAt string `json:"decommission_at,omitempty"`
}

NetworkServiceCancellationPolicyReadQuery has all query parameters for NetworkServiceCancellationPolicyRead

func (*NetworkServiceCancellationPolicyReadQuery) RawQuery

RawQuery creates a query string for NetworkServiceCancellationPolicyReadQuery

type NetworkServiceChangeRequest

type NetworkServiceChangeRequest struct {
	// ProductOffering Migrate to a diffrent product offering. Please note, that
	// the offering only may differ in bandwidth.
	ProductOffering string `json:"product_offering,omitempty"`

	// Capacity The desired capacity of the service in Mbps.
	//
	// Must be within the range of `bandwidth_min` and
	// `bandwidth_max` of the `ProductOffering`.
	//
	// When `null` the maximum capacity wil be used.
	Capacity *int `json:"capacity,omitempty"`
}

NetworkServiceChangeRequest NetworkServiceChangeRequest

type NetworkServiceConfig

type NetworkServiceConfig interface {
	Polymorphic
}

NetworkServiceConfig Polymorphic Network Service Config

type NetworkServiceConfigCancellationPolicyReadQuery

type NetworkServiceConfigCancellationPolicyReadQuery struct {
	// DecommissionAt is a decommission_at
	DecommissionAt string `json:"decommission_at,omitempty"`
}

NetworkServiceConfigCancellationPolicyReadQuery has all query parameters for NetworkServiceConfigCancellationPolicyRead

func (*NetworkServiceConfigCancellationPolicyReadQuery) RawQuery

RawQuery creates a query string for NetworkServiceConfigCancellationPolicyReadQuery

type NetworkServiceConfigPatch

type NetworkServiceConfigPatch interface {
	Polymorphic
}

NetworkServiceConfigPatch Polymorphic Network Service Config

type NetworkServiceConfigRequest

type NetworkServiceConfigRequest interface {
	Polymorphic
}

NetworkServiceConfigRequest Polymorhic Network Service Config Request

type NetworkServiceConfigUpdate

type NetworkServiceConfigUpdate interface {
	Polymorphic
}

NetworkServiceConfigUpdate Polymorphic Network Service Config

type NetworkServiceConfigsListQuery

type NetworkServiceConfigsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// StateIsNot is a state__is_not
	StateIsNot string `json:"state__is_not,omitempty"`

	// ManagingAccount is a managing_account
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount is a consuming_account
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef is a external_ref
	ExternalRef string `json:"external_ref,omitempty"`

	// Type is a type
	Type string `json:"type,omitempty"`

	// InnerVLAN is a inner_vlan
	InnerVLAN int `json:"inner_vlan,omitempty"`

	// OuterVLAN is a outer_vlan
	OuterVLAN int `json:"outer_vlan,omitempty"`

	// Capacity is a capacity
	Capacity int `json:"capacity,omitempty"`

	// NetworkService is a network_service
	NetworkService string `json:"network_service,omitempty"`

	// Connection is a connection
	Connection string `json:"connection,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// RoleAssignments is a role_assignments
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Contacts is a contacts
	Contacts []string `json:"contacts,omitempty"`
}

NetworkServiceConfigsListQuery has all query parameters for NetworkServiceConfigsList

func (*NetworkServiceConfigsListQuery) RawQuery

func (n *NetworkServiceConfigsListQuery) RawQuery() string

RawQuery creates a query string for NetworkServiceConfigsListQuery

type NetworkServiceDeleteResponse

type NetworkServiceDeleteResponse interface {
	Polymorphic
}

NetworkServiceDeleteResponse Polymorphic Network Service Request

type NetworkServicePatch

type NetworkServicePatch interface {
	Polymorphic
}

NetworkServicePatch Polymorphic Network Service Patch

type NetworkServiceRequest

type NetworkServiceRequest interface {
	Polymorphic
}

NetworkServiceRequest Polymorphic Network Service Request

type NetworkServiceUpdate

type NetworkServiceUpdate interface {
	Polymorphic
}

NetworkServiceUpdate Polymorphic Network Service Update

type NetworkServicesListQuery

type NetworkServicesListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// StateIsNot is a state__is_not
	StateIsNot string `json:"state__is_not,omitempty"`

	// ManagingAccount is a managing_account
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount is a consuming_account
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef is a external_ref
	ExternalRef string `json:"external_ref,omitempty"`

	// Type is a type
	Type string `json:"type,omitempty"`

	// Pop is a pop
	Pop string `json:"pop,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`
}

NetworkServicesListQuery has all query parameters for NetworkServicesList

func (*NetworkServicesListQuery) RawQuery

func (n *NetworkServicesListQuery) RawQuery() string

RawQuery creates a query string for NetworkServicesListQuery

type NotFoundError

type NotFoundError struct {
	ProblemResponse
}

NotFoundError indicates that a resource was not found

func AsErrNotFound

func AsErrNotFound(err error) *NotFoundError

AsErrNotFound tries to convert an error into a not found error and will return nil if not successful

type OAuth2ClientCredentials

type OAuth2ClientCredentials struct {
	Key      string
	Secret   string
	TokenURL string
	Scopes   []string
}

OAuth2ClientCredentials will use OAuth2 for authentication

type P2MPNetworkProductOffering

type P2MPNetworkProductOffering struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Name Name of the product
	Name string `json:"name,omitempty"`

	// DisplayName is a display_name
	DisplayName string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// ProviderVLANs The `NetworkService` provides `single` or `multi`ple vlans.
	ProviderVLANs string `json:"provider_vlans,omitempty"`

	// ServiceMetroAreaNetwork Id of the `MetroAreaNetwork`.
	// The service is directly provided on the metro area network.
	//
	// In case of a `p2p_vc`, the `service_metro_area_network` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroAreaNetwork string `json:"service_metro_area_network,omitempty"`

	// ServiceMetroArea Id of the `MetroArea`. The service is delivered
	// in this metro area.
	//
	// In case of a `p2p_vc`, the `service_metro_area` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroArea string `json:"service_metro_area,omitempty"`

	// BandwidthMin When configuring access to the network service, at least
	// this `capacity` must be provided.
	BandwidthMin int `json:"bandwidth_min,omitempty"`

	// BandwidthMax When not `null`, this value enforces a mandatory
	// rate limit for all network service configs.
	BandwidthMax int `json:"bandwidth_max,omitempty"`
}

P2MPNetworkProductOffering P2MP Network Product Offering

func (P2MPNetworkProductOffering) PolymorphicType

func (p P2MPNetworkProductOffering) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2MPNetworkProductOfferingPatch

type P2MPNetworkProductOfferingPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID *string `json:"id,omitempty"`

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

	// DisplayName is a display_name
	DisplayName *string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType *string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork *string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea *string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed *int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider *string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed *bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed *bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// ProviderVLANs The `NetworkService` provides `single` or `multi`ple vlans.
	ProviderVLANs *string `json:"provider_vlans,omitempty"`

	// ServiceMetroAreaNetwork Id of the `MetroAreaNetwork`.
	// The service is directly provided on the metro area network.
	//
	// In case of a `p2p_vc`, the `service_metro_area_network` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroAreaNetwork *string `json:"service_metro_area_network,omitempty"`

	// ServiceMetroArea Id of the `MetroArea`. The service is delivered
	// in this metro area.
	//
	// In case of a `p2p_vc`, the `service_metro_area` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroArea *string `json:"service_metro_area,omitempty"`

	// BandwidthMin When configuring access to the network service, at least
	// this `capacity` must be provided.
	BandwidthMin *int `json:"bandwidth_min,omitempty"`

	// BandwidthMax When not `null`, this value enforces a mandatory
	// rate limit for all network service configs.
	BandwidthMax *int `json:"bandwidth_max,omitempty"`
}

P2MPNetworkProductOfferingPatch P2MP Network Product Offering

func (P2MPNetworkProductOfferingPatch) PolymorphicType

func (p P2MPNetworkProductOfferingPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2MPNetworkService

type P2MPNetworkService struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NscRequiredContactRoles The configuration will require at least one of each of the
	// specified roles assigned to contacts.
	//
	// The `RoleAssignment` is associated through the
	// `role_assignments` list property of the network service configuration.
	NscRequiredContactRoles []string `json:"nsc_required_contact_roles,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// NscProductOfferings An optional list of `ProductOffering`s which can be used in the
	// network service configs for this service.
	NscProductOfferings []string `json:"nsc_product_offerings,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// DisplayName Name of the point to multi-point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of.
	//
	DisplayName *string `json:"display_name,omitempty"`

	// Public A public p2mp network service can be joined
	// by everyone on the exchange unless denied by
	// a member-joining-rule.
	//
	// Public network services are visible to other
	// members of the IXP, however only `name`, `type`,
	// `product_offering`, `consuming_account` and
	// `managing_account` are made
	// available.
	//
	// Other required fields are redacted.
	Public *bool `json:"public,omitempty"`

	// NetworkFeatures is a network_features
	NetworkFeatures []string `json:"network_features,omitempty"`

	// MemberJoiningRules is a member_joining_rules
	MemberJoiningRules []string `json:"member_joining_rules,omitempty"`
}

P2MPNetworkService P2MP Network Service

func (P2MPNetworkService) PolymorphicType

func (p P2MPNetworkService) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2MPNetworkServiceConfig

type P2MPNetworkServiceConfig struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a polymorphic vlan configuration
	VLANConfig VLANConfig `tf:"vlan_config" json:"-"`
	// VLANConfigRaw contains the vlan config response data
	VLANConfigRaw json.RawMessage `tf:"-" json:"vlan_config,omitempty"`

	// Role A `leaf` can only reach roots and is
	// isolated from other leafs. A `root` can
	// reach any other point in the virtual circuit
	// including other roots.
	Role *string `json:"role,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NetworkService The id of the configured network service.
	NetworkService string `json:"network_service,omitempty"`
}

P2MPNetworkServiceConfig P2MP Network Service Config

func (P2MPNetworkServiceConfig) PolymorphicType

func (p P2MPNetworkServiceConfig) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2MPNetworkServiceConfigPatch

type P2MPNetworkServiceConfigPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount *string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection *string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// Role A `leaf` can only reach roots and is
	// isolated from other leafs. A `root` can
	// reach any other point in the virtual circuit
	// including other roots.
	Role *string `json:"role,omitempty"`
}

P2MPNetworkServiceConfigPatch P2MP Network Service Config Update

func (P2MPNetworkServiceConfigPatch) PolymorphicType

func (p P2MPNetworkServiceConfigPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2MPNetworkServiceConfigRequest

type P2MPNetworkServiceConfigRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// NetworkService The id of the `NetworkService` to configure.
	NetworkService string `json:"network_service,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// Role A `leaf` can only reach roots and is
	// isolated from other leafs. A `root` can
	// reach any other point in the virtual circuit
	// including other roots.
	Role *string `json:"role,omitempty"`
}

P2MPNetworkServiceConfigRequest P2MP Network Service Config Request

func (P2MPNetworkServiceConfigRequest) PolymorphicType

func (p P2MPNetworkServiceConfigRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2MPNetworkServiceConfigUpdate

type P2MPNetworkServiceConfigUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// Role A `leaf` can only reach roots and is
	// isolated from other leafs. A `root` can
	// reach any other point in the virtual circuit
	// including other roots.
	Role *string `json:"role,omitempty"`
}

P2MPNetworkServiceConfigUpdate P2MP Network Service Config Update

func (P2MPNetworkServiceConfigUpdate) PolymorphicType

func (p P2MPNetworkServiceConfigUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2MPNetworkServicePatch

type P2MPNetworkServicePatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering *string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount *string `json:"billing_account,omitempty"`

	// DisplayName Name of the point to multi-point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of.
	//
	DisplayName *string `json:"display_name,omitempty"`

	// Public A public p2mp network service can be joined
	// by everyone on the exchange unless denied by
	// a member-joining-rule.
	//
	// Public network services are visible to other
	// members of the IXP, however only `name`, `type`,
	// `product_offering`, `consuming_account` and
	// `managing_account` are made
	// available.
	//
	// Other required fields are redacted.
	Public *bool `json:"public,omitempty"`
}

P2MPNetworkServicePatch P2MP Network Service Update

func (P2MPNetworkServicePatch) PolymorphicType

func (p P2MPNetworkServicePatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2MPNetworkServiceRequest

type P2MPNetworkServiceRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// DisplayName Name of the point to multi-point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of.
	//
	DisplayName *string `json:"display_name,omitempty"`

	// Public A public p2mp network service can be joined
	// by everyone on the exchange unless denied by
	// a member-joining-rule.
	//
	// Public network services are visible to other
	// members of the IXP, however only `name`, `type`,
	// `product_offering`, `consuming_account` and
	// `managing_account` are made
	// available.
	//
	// Other required fields are redacted.
	Public *bool `json:"public,omitempty"`
}

P2MPNetworkServiceRequest P2MP Network Service Request

func (P2MPNetworkServiceRequest) PolymorphicType

func (p P2MPNetworkServiceRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2MPNetworkServiceUpdate

type P2MPNetworkServiceUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// DisplayName Name of the point to multi-point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of.
	//
	DisplayName *string `json:"display_name,omitempty"`

	// Public A public p2mp network service can be joined
	// by everyone on the exchange unless denied by
	// a member-joining-rule.
	//
	// Public network services are visible to other
	// members of the IXP, however only `name`, `type`,
	// `product_offering`, `consuming_account` and
	// `managing_account` are made
	// available.
	//
	// Other required fields are redacted.
	Public *bool `json:"public,omitempty"`
}

P2MPNetworkServiceUpdate P2MP Network Service Update

func (P2MPNetworkServiceUpdate) PolymorphicType

func (p P2MPNetworkServiceUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2PNetworkProductOffering

type P2PNetworkProductOffering struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Name Name of the product
	Name string `json:"name,omitempty"`

	// DisplayName is a display_name
	DisplayName string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// ProviderVLANs The `NetworkService` provides `single` or `multi`ple vlans.
	ProviderVLANs string `json:"provider_vlans,omitempty"`

	// ServiceMetroAreaNetwork Id of the `MetroAreaNetwork`.
	// The service is directly provided on the metro area network.
	//
	// In case of a `p2p_vc`, the `service_metro_area_network` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroAreaNetwork string `json:"service_metro_area_network,omitempty"`

	// ServiceMetroArea Id of the `MetroArea`. The service is delivered
	// in this metro area.
	//
	// In case of a `p2p_vc`, the `service_metro_area` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroArea string `json:"service_metro_area,omitempty"`

	// BandwidthMin When configuring access to the network service, at least
	// this `capacity` must be provided.
	BandwidthMin int `json:"bandwidth_min,omitempty"`

	// BandwidthMax When not `null`, this value enforces a mandatory
	// rate limit for all network service configs.
	BandwidthMax int `json:"bandwidth_max,omitempty"`
}

P2PNetworkProductOffering P2P Network Product Offering

func (P2PNetworkProductOffering) PolymorphicType

func (p P2PNetworkProductOffering) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2PNetworkProductOfferingPatch

type P2PNetworkProductOfferingPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID *string `json:"id,omitempty"`

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

	// DisplayName is a display_name
	DisplayName *string `json:"display_name,omitempty"`

	//
	ExchangeLogo *string `json:"exchange_logo,omitempty"`

	//
	ServiceProviderLogo *string `json:"service_provider_logo,omitempty"`

	//
	ProductLogo *string `json:"product_logo,omitempty"`

	// ResourceType The resource type refers to an ix-api resource.
	//
	ResourceType *string `json:"resource_type,omitempty"`

	// HandoverMetroAreaNetwork Id of the `MetroAreaNetwork`. The service will be accessed
	// through the handover metro area network.
	//
	// In case of a `p2p_vc`, the `handover_metro_area_network` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroAreaNetwork *string `json:"handover_metro_area_network,omitempty"`

	// HandoverMetroArea Id of the `MetroArea`. The network service will be
	// accessed from this metro area.
	//
	// In case of a `p2p_vc`, the `handover_metro_area` refers
	// to the A-side of the point-to-point connection.
	// The A-side is the entity which initiates the network service creation.
	//
	HandoverMetroArea *string `json:"handover_metro_area,omitempty"`

	// PhysicalPortSpeed If the service is dependent on the speed of
	// the physical port this field denotes the speed.
	PhysicalPortSpeed *int `json:"physical_port_speed,omitempty"`

	// ServiceProvider The name of the provider providing the service.
	//
	ServiceProvider *string `json:"service_provider,omitempty"`

	// DowngradeAllowed Indicates if the service can be migrated to
	// a lower bandwidth.
	DowngradeAllowed *bool `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed Indicates if the service can be migrated to
	// a higher bandwidth.
	UpgradeAllowed *bool `json:"upgrade_allowed,omitempty"`

	// OrderableNotBefore This product offering becomes available for ordering after
	// this point in time.
	OrderableNotBefore *time.Time `json:"orderable_not_before,omitempty"`

	// OrderableNotAfter This product offering will become unavailable for ordering after
	// this point in time.
	OrderableNotAfter *time.Time `json:"orderable_not_after,omitempty"`

	// ContractTerms The contract terms informally describe the contract period and
	// renewals.
	//
	ContractTerms *string `json:"contract_terms,omitempty"`

	// NoticePeriod The notice period informally states constraints
	// which define when the client needs to inform the
	// IXP in order to prevent renewal of the contract.
	//
	NoticePeriod *string `json:"notice_period,omitempty"`

	// ProviderVLANs The `NetworkService` provides `single` or `multi`ple vlans.
	ProviderVLANs *string `json:"provider_vlans,omitempty"`

	// ServiceMetroAreaNetwork Id of the `MetroAreaNetwork`.
	// The service is directly provided on the metro area network.
	//
	// In case of a `p2p_vc`, the `service_metro_area_network` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroAreaNetwork *string `json:"service_metro_area_network,omitempty"`

	// ServiceMetroArea Id of the `MetroArea`. The service is delivered
	// in this metro area.
	//
	// In case of a `p2p_vc`, the `service_metro_area` refers
	// to the B-side of the point-to-point connection.
	// The B-side is the accepting party.
	//
	ServiceMetroArea *string `json:"service_metro_area,omitempty"`

	// BandwidthMin When configuring access to the network service, at least
	// this `capacity` must be provided.
	BandwidthMin *int `json:"bandwidth_min,omitempty"`

	// BandwidthMax When not `null`, this value enforces a mandatory
	// rate limit for all network service configs.
	BandwidthMax *int `json:"bandwidth_max,omitempty"`
}

P2PNetworkProductOfferingPatch P2P Network Product Offering

func (P2PNetworkProductOfferingPatch) PolymorphicType

func (p P2PNetworkProductOfferingPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2PNetworkService

type P2PNetworkService struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NscRequiredContactRoles The configuration will require at least one of each of the
	// specified roles assigned to contacts.
	//
	// The `RoleAssignment` is associated through the
	// `role_assignments` list property of the network service configuration.
	NscRequiredContactRoles []string `json:"nsc_required_contact_roles,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// NscProductOfferings An optional list of `ProductOffering`s which can be used in the
	// network service configs for this service.
	NscProductOfferings []string `json:"nsc_product_offerings,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// DisplayName Name of the point to point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of.
	//
	DisplayName *string `json:"display_name,omitempty"`

	// JoiningMemberAccount The account of the B-side member joining the virtual circuit.
	//
	JoiningMemberAccount string `json:"joining_member_account,omitempty"`

	// Capacity The capacity of the service in Mbps. When null,
	// the maximum capacity will be used.
	Capacity *int `json:"capacity,omitempty"`
}

P2PNetworkService P2P Network Service

func (P2PNetworkService) PolymorphicType

func (p P2PNetworkService) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2PNetworkServiceConfig

type P2PNetworkServiceConfig struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// NetworkService The id of the configured network service.
	NetworkService string `json:"network_service,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a polymorphic vlan configuration
	VLANConfig VLANConfig `tf:"vlan_config" json:"-"`
	// VLANConfigRaw contains the vlan config response data
	VLANConfigRaw json.RawMessage `tf:"-" json:"vlan_config,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`
}

P2PNetworkServiceConfig P2P Network Service Config

func (P2PNetworkServiceConfig) PolymorphicType

func (p P2PNetworkServiceConfig) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2PNetworkServiceConfigPatch

type P2PNetworkServiceConfigPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount *string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection *string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`
}

P2PNetworkServiceConfigPatch P2P Network Service Config Update

func (P2PNetworkServiceConfigPatch) PolymorphicType

func (p P2PNetworkServiceConfigPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2PNetworkServiceConfigRequest

type P2PNetworkServiceConfigRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// NetworkService The id of the `NetworkService` to configure.
	NetworkService string `json:"network_service,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`
}

P2PNetworkServiceConfigRequest P2P Network Service Config Request

func (P2PNetworkServiceConfigRequest) PolymorphicType

func (p P2PNetworkServiceConfigRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2PNetworkServiceConfigUpdate

type P2PNetworkServiceConfigUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// VLANConfig is a vlan_config
	VLANConfig VLANConfig `json:"vlan_config,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection The id of the connection to use for this `NetworkServiceConfig`.
	Connection string `json:"connection,omitempty"`

	// NetworkFeatureConfigs A list of ids of `NetworkFeatureConfig`s.
	//
	NetworkFeatureConfigs []string `json:"network_feature_configs,omitempty"`

	// ProductOffering An optional id of a `ProductOffering`.
	//
	// Valid ids of product-offerings can be found in the
	// `nsc_product_offerings` property of the `NetworkService`.
	ProductOffering *string `json:"product_offering,omitempty"`

	// Capacity The capacity of the service in Mbps. If set to Null,
	// the maximum capacity will be used, i.e. the virtual circuit is
	// not rate-limited.
	//
	// An exchange may choose to constrain the available capacity range
	// of a `ProductOffering`.
	//
	// That means, the service can consume up to the total bandwidth
	// of the `Connection`.
	//
	// Typically the service is charged based on the capacity.
	Capacity *int `json:"capacity,omitempty"`
}

P2PNetworkServiceConfigUpdate P2P Network Service Config Update

func (P2PNetworkServiceConfigUpdate) PolymorphicType

func (p P2PNetworkServiceConfigUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2PNetworkServicePatch

type P2PNetworkServicePatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering *string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount *string `json:"billing_account,omitempty"`

	// DisplayName Name of the point to point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of.
	//
	DisplayName *string `json:"display_name,omitempty"`

	// JoiningMemberAccount The account of the B-side member joining the virtual circuit.
	//
	JoiningMemberAccount *string `json:"joining_member_account,omitempty"`
}

P2PNetworkServicePatch P2P Network Service Update

func (P2PNetworkServicePatch) PolymorphicType

func (p P2PNetworkServicePatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2PNetworkServiceRequest

type P2PNetworkServiceRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// DisplayName Name of the point to point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of.
	//
	DisplayName *string `json:"display_name,omitempty"`

	// JoiningMemberAccount The account of the B-side member joining the virtual circuit.
	//
	JoiningMemberAccount string `json:"joining_member_account,omitempty"`
}

P2PNetworkServiceRequest P2P Network Service Request

func (P2PNetworkServiceRequest) PolymorphicType

func (p P2PNetworkServiceRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type P2PNetworkServiceUpdate

type P2PNetworkServiceUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ProductOffering is a product_offering
	ProductOffering string `json:"product_offering,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// DisplayName Name of the point to point virtual circuit.
	//
	// It is visible to all parties allowed to connect
	// to this virtual circuit.
	//
	// It is intended for humans to make sense of.
	//
	DisplayName *string `json:"display_name,omitempty"`

	// JoiningMemberAccount The account of the B-side member joining the virtual circuit.
	//
	JoiningMemberAccount string `json:"joining_member_account,omitempty"`
}

P2PNetworkServiceUpdate P2P Network Service Update

func (P2PNetworkServiceUpdate) PolymorphicType

func (p P2PNetworkServiceUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PermissionError

type PermissionError struct {
	ProblemResponse
}

PermissionError indicates that insufficient rights were given, when trying to access a resource.

func AsErrPermissionDenied

func AsErrPermissionDenied(err error) *PermissionError

AsErrPermissionDenied tries to convert the error into a PermissionError

type PointOfPresence

type PointOfPresence struct {
	// Name is a name
	Name string `json:"name,omitempty"`

	// Facility The pop is located in this `Facility`.
	Facility string `json:"facility,omitempty"`

	// MetroAreaNetwork is a metro_area_network
	MetroAreaNetwork string `json:"metro_area_network,omitempty"`

	// Devices is a devices
	Devices []string `json:"devices,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

PointOfPresence Point Of Presence

type Polymorphic

type Polymorphic interface {
	PolymorphicType() string
}

Polymorphic indicates that the type is polymorphic.

type PolymorphicMemberJoiningRule

type PolymorphicMemberJoiningRule struct {
	Type string `json:"type"`
}

PolymorphicMemberJoiningRule is a polymorphic base

func (PolymorphicMemberJoiningRule) PolymorphicType

func (m PolymorphicMemberJoiningRule) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicMemberJoiningRulePatch

type PolymorphicMemberJoiningRulePatch struct {
	Type string `json:"type"`
}

PolymorphicMemberJoiningRulePatch is a polymorphic base

func (PolymorphicMemberJoiningRulePatch) PolymorphicType

func (m PolymorphicMemberJoiningRulePatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicMemberJoiningRuleRequest

type PolymorphicMemberJoiningRuleRequest struct {
	Type string `json:"type"`
}

PolymorphicMemberJoiningRuleRequest is a polymorphic base

func (PolymorphicMemberJoiningRuleRequest) PolymorphicType

func (m PolymorphicMemberJoiningRuleRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicMemberJoiningRuleUpdate

type PolymorphicMemberJoiningRuleUpdate struct {
	Type string `json:"type"`
}

PolymorphicMemberJoiningRuleUpdate is a polymorphic base

func (PolymorphicMemberJoiningRuleUpdate) PolymorphicType

func (m PolymorphicMemberJoiningRuleUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkFeature

type PolymorphicNetworkFeature struct {
	Type string `json:"type"`
}

PolymorphicNetworkFeature is a polymorphic base

func (PolymorphicNetworkFeature) PolymorphicType

func (n PolymorphicNetworkFeature) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkFeatureConfig

type PolymorphicNetworkFeatureConfig struct {
	Type string `json:"type"`
}

PolymorphicNetworkFeatureConfig is a polymorphic base

func (PolymorphicNetworkFeatureConfig) PolymorphicType

func (n PolymorphicNetworkFeatureConfig) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkFeatureConfigPatch

type PolymorphicNetworkFeatureConfigPatch struct {
	Type string `json:"type"`
}

PolymorphicNetworkFeatureConfigPatch is a polymorphic base

func (PolymorphicNetworkFeatureConfigPatch) PolymorphicType

func (n PolymorphicNetworkFeatureConfigPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkFeatureConfigRequest

type PolymorphicNetworkFeatureConfigRequest struct {
	Type string `json:"type"`
}

PolymorphicNetworkFeatureConfigRequest is a polymorphic base

func (PolymorphicNetworkFeatureConfigRequest) PolymorphicType

func (n PolymorphicNetworkFeatureConfigRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkFeatureConfigUpdate

type PolymorphicNetworkFeatureConfigUpdate struct {
	Type string `json:"type"`
}

PolymorphicNetworkFeatureConfigUpdate is a polymorphic base

func (PolymorphicNetworkFeatureConfigUpdate) PolymorphicType

func (n PolymorphicNetworkFeatureConfigUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkService

type PolymorphicNetworkService struct {
	Type string `json:"type"`
}

PolymorphicNetworkService is a polymorphic base

func (PolymorphicNetworkService) PolymorphicType

func (n PolymorphicNetworkService) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkServiceConfig

type PolymorphicNetworkServiceConfig struct {
	Type string `json:"type"`
}

PolymorphicNetworkServiceConfig is a polymorphic base

func (PolymorphicNetworkServiceConfig) PolymorphicType

func (n PolymorphicNetworkServiceConfig) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkServiceConfigPatch

type PolymorphicNetworkServiceConfigPatch struct {
	Type string `json:"type"`
}

PolymorphicNetworkServiceConfigPatch is a polymorphic base

func (PolymorphicNetworkServiceConfigPatch) PolymorphicType

func (n PolymorphicNetworkServiceConfigPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkServiceConfigRequest

type PolymorphicNetworkServiceConfigRequest struct {
	Type string `json:"type"`
}

PolymorphicNetworkServiceConfigRequest is a polymorphic base

func (PolymorphicNetworkServiceConfigRequest) PolymorphicType

func (n PolymorphicNetworkServiceConfigRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkServiceConfigUpdate

type PolymorphicNetworkServiceConfigUpdate struct {
	Type string `json:"type"`
}

PolymorphicNetworkServiceConfigUpdate is a polymorphic base

func (PolymorphicNetworkServiceConfigUpdate) PolymorphicType

func (n PolymorphicNetworkServiceConfigUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkServiceDeleteResponse

type PolymorphicNetworkServiceDeleteResponse struct {
	Type string `json:"type"`
}

PolymorphicNetworkServiceDeleteResponse is a polymorphic base

func (PolymorphicNetworkServiceDeleteResponse) PolymorphicType

func (n PolymorphicNetworkServiceDeleteResponse) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkServicePatch

type PolymorphicNetworkServicePatch struct {
	Type string `json:"type"`
}

PolymorphicNetworkServicePatch is a polymorphic base

func (PolymorphicNetworkServicePatch) PolymorphicType

func (n PolymorphicNetworkServicePatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkServiceRequest

type PolymorphicNetworkServiceRequest struct {
	Type string `json:"type"`
}

PolymorphicNetworkServiceRequest is a polymorphic base

func (PolymorphicNetworkServiceRequest) PolymorphicType

func (n PolymorphicNetworkServiceRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicNetworkServiceUpdate

type PolymorphicNetworkServiceUpdate struct {
	Type string `json:"type"`
}

PolymorphicNetworkServiceUpdate is a polymorphic base

func (PolymorphicNetworkServiceUpdate) PolymorphicType

func (n PolymorphicNetworkServiceUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicProductOffering

type PolymorphicProductOffering struct {
	Type string `json:"type"`
}

PolymorphicProductOffering is a polymorphic base

func (PolymorphicProductOffering) PolymorphicType

func (p PolymorphicProductOffering) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicProductOfferingPatch

type PolymorphicProductOfferingPatch struct {
	Type string `json:"type"`
}

PolymorphicProductOfferingPatch is a polymorphic base

func (PolymorphicProductOfferingPatch) PolymorphicType

func (p PolymorphicProductOfferingPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PolymorphicVLANConfig

type PolymorphicVLANConfig struct {
	VLANType string `json:"vlan_type"`
}

PolymorphicVLANConfig is a polymorphic base

func (PolymorphicVLANConfig) PolymorphicType

func (v PolymorphicVLANConfig) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type PopsListQuery

type PopsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// Facility is a facility
	Facility string `json:"facility,omitempty"`

	// MetroAreaNetwork is a metro_area_network
	MetroAreaNetwork string `json:"metro_area_network,omitempty"`

	// CapabilityMediaType is a capability_media_type
	CapabilityMediaType string `json:"capability_media_type,omitempty"`

	// CapabilitySpeed is a capability_speed
	CapabilitySpeed int `json:"capability_speed,omitempty"`

	// CapabilitySpeedLt is a capability_speed__lt
	CapabilitySpeedLt int `json:"capability_speed__lt,omitempty"`

	// CapabilitySpeedLte is a capability_speed__lte
	CapabilitySpeedLte int `json:"capability_speed__lte,omitempty"`

	// CapabilitySpeedGt is a capability_speed__gt
	CapabilitySpeedGt int `json:"capability_speed__gt,omitempty"`

	// CapabilitySpeedGte is a capability_speed__gte
	CapabilitySpeedGte int `json:"capability_speed__gte,omitempty"`
}

PopsListQuery has all query parameters for PopsList

func (*PopsListQuery) RawQuery

func (p *PopsListQuery) RawQuery() string

RawQuery creates a query string for PopsListQuery

type Port

type Port struct {
	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// Connection is a connection
	Connection *string `json:"connection,omitempty"`

	// Speed is a speed
	Speed *int `json:"speed,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Name Name of the port (set by the exchange)
	Name *string `json:"name,omitempty"`

	// MediaType The media type of the port.
	// Query the device's capabilities for available types.
	//
	MediaType string `json:"media_type,omitempty"`

	// OperationalState The operational state of the port.
	OperationalState *string `json:"operational_state,omitempty"`

	// Device The device the port.
	//
	Device string `json:"device,omitempty"`

	// Pop Same as the `pop` of the `device`.
	//
	Pop string `json:"pop,omitempty"`
}

Port Port

type PortReservation

type PortReservation struct {
	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// DecommissionAt The service will be decommissioned on this date.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	DecommissionAt *Date `json:"decommission_at,omitempty"`

	// ChargedUntil The service continues incurring charges until this date.
	// Typically `≥ decommission_at`.
	//
	// This field is only used when
	// the state is `DECOMMISSION_REQUESTED` or
	// `DECOMMISSIONED`.
	//
	// *(Sensitive Property)*
	ChargedUntil *Date `json:"charged_until,omitempty"`

	// CurrentBillingStartDate Your obligation to pay for the service will start on this date.
	//
	// However, this date may change after an upgrade and not reflect
	// the inital start date of the service.
	//
	// *(Sensitive Property)*
	CurrentBillingStartDate *Date `json:"current_billing_start_date,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// SubscriberSideDemarc In an exchange initiated scenario, this field will
	// indicated one of the provided `subscriber_side_demarcs`
	// from the connection.
	SubscriberSideDemarc *string `json:"subscriber_side_demarc,omitempty"`

	// ConnectingParty Name of the service provider who establishes
	// connectivity on your behalf.
	//
	// This is only relevant, if the cross connect initiator
	// is the `subscriber`.
	//
	// Please refer to the usage guide of the internet exchange.
	ConnectingParty *string `json:"connecting_party,omitempty"`

	// CrossConnectID An optional identifier of a cross connect.
	CrossConnectID *string `json:"cross_connect_id,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Connection The `Port` will become part of this connection.
	Connection string `json:"connection,omitempty"`

	// ExchangeSideDemarc Exchange side demarc information. This field will only
	// be filled in when the port state is `allocated` or
	// in `production`.
	//
	// Otherwise this field will be `null`.
	ExchangeSideDemarc *string `json:"exchange_side_demarc,omitempty"`

	// Port This field will be null, until a port will
	// be allocated.
	Port *string `json:"port,omitempty"`
}

PortReservation A PortReservation

type PortReservationCancellationPolicyQuery

type PortReservationCancellationPolicyQuery struct {
	// DecommissionAt is a decommission_at
	DecommissionAt string `json:"decommission_at,omitempty"`
}

PortReservationCancellationPolicyQuery has all query parameters for PortReservationCancellationPolicy

func (*PortReservationCancellationPolicyQuery) RawQuery

RawQuery creates a query string for PortReservationCancellationPolicyQuery

type PortReservationPatch

type PortReservationPatch struct {
	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// SubscriberSideDemarc In an exchange initiated scenario, this field will
	// indicated one of the provided `subscriber_side_demarcs`
	// from the connection.
	SubscriberSideDemarc *string `json:"subscriber_side_demarc,omitempty"`

	// ConnectingParty Name of the service provider who establishes
	// connectivity on your behalf.
	//
	// This is only relevant, if the cross connect initiator
	// is the `subscriber`.
	//
	// Please refer to the usage guide of the internet exchange.
	ConnectingParty *string `json:"connecting_party,omitempty"`

	// CrossConnectID An optional identifier of a cross connect.
	CrossConnectID *string `json:"cross_connect_id,omitempty"`
}

PortReservationPatch PortReservation Update

type PortReservationRequest

type PortReservationRequest struct {
	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// SubscriberSideDemarc In an exchange initiated scenario, this field will
	// indicated one of the provided `subscriber_side_demarcs`
	// from the connection.
	SubscriberSideDemarc *string `json:"subscriber_side_demarc,omitempty"`

	// ConnectingParty Name of the service provider who establishes
	// connectivity on your behalf.
	//
	// This is only relevant, if the cross connect initiator
	// is the `subscriber`.
	//
	// Please refer to the usage guide of the internet exchange.
	ConnectingParty *string `json:"connecting_party,omitempty"`

	// CrossConnectID An optional identifier of a cross connect.
	CrossConnectID *string `json:"cross_connect_id,omitempty"`

	// Connection A connection is required for port allocation.
	Connection string `json:"connection,omitempty"`
}

PortReservationRequest A PortReservation

type PortReservationUpdate

type PortReservationUpdate struct {
	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// SubscriberSideDemarc In an exchange initiated scenario, this field will
	// indicated one of the provided `subscriber_side_demarcs`
	// from the connection.
	SubscriberSideDemarc *string `json:"subscriber_side_demarc,omitempty"`

	// ConnectingParty Name of the service provider who establishes
	// connectivity on your behalf.
	//
	// This is only relevant, if the cross connect initiator
	// is the `subscriber`.
	//
	// Please refer to the usage guide of the internet exchange.
	ConnectingParty *string `json:"connecting_party,omitempty"`

	// CrossConnectID An optional identifier of a cross connect.
	CrossConnectID *string `json:"cross_connect_id,omitempty"`
}

PortReservationUpdate PortReservation Update

type PortReservationsListQuery

type PortReservationsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// StateIsNot is a state__is_not
	StateIsNot string `json:"state__is_not,omitempty"`

	// Connection is a connection
	Connection string `json:"connection,omitempty"`

	// Port is a port
	Port string `json:"port,omitempty"`

	// ExternalRef is a external_ref
	ExternalRef string `json:"external_ref,omitempty"`
}

PortReservationsListQuery has all query parameters for PortReservationsList

func (*PortReservationsListQuery) RawQuery

func (p *PortReservationsListQuery) RawQuery() string

RawQuery creates a query string for PortReservationsListQuery

type PortStatistics

type PortStatistics struct {
	// Aggregates Aggregated statistics for a connection or service configuration
	//
	// For the **property name** the aggregate interval as a
	// string representation is used. For example: `5m`, `1d`, `30d`,
	// `1y`.
	//
	// If a window is defined via the `start` and `end` query parameter,
	// the **property name** will be `custom`.
	//
	// The available intervals can differ by implementation.
	//
	Aggregates map[string]interface{} `json:"aggregates,omitempty"`

	// LightLevelsTx A list of light levels in **dBm** for each channel.
	//
	LightLevelsTx []float64 `json:"light_levels_tx,omitempty"`

	// LightLevelsRx A list of light levels in **dBm** for each channel.
	//
	LightLevelsRx []float64 `json:"light_levels_rx,omitempty"`
}

PortStatistics Port Statistics

type PortsListQuery

type PortsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// StateIsNot is a state__is_not
	StateIsNot string `json:"state__is_not,omitempty"`

	// MediaType is a media_type
	MediaType string `json:"media_type,omitempty"`

	// Pop is a pop
	Pop string `json:"pop,omitempty"`

	// Name is a name
	Name string `json:"name,omitempty"`

	// ExternalRef is a external_ref
	ExternalRef string `json:"external_ref,omitempty"`

	// Device is a device
	Device string `json:"device,omitempty"`

	// Speed is a speed
	Speed string `json:"speed,omitempty"`

	// Connection is a connection
	Connection string `json:"connection,omitempty"`
}

PortsListQuery has all query parameters for PortsList

func (*PortsListQuery) RawQuery

func (p *PortsListQuery) RawQuery() string

RawQuery creates a query string for PortsListQuery

type ProblemResponse

type ProblemResponse struct {
	// Type A URI reference (see RFC3986) that identifies the
	// problem type.
	//
	// This specification encourages that, when
	// dereferenced, it provide human-readable documentation
	// for the problem type (e.g., using HTML
	// [W3C.REC-html5-20141028]).
	//
	// When this member is not present, its value is assumed
	// to be "about:blank".
	//
	Type string `json:"type,omitempty"`

	// Title A short, human-readable summary of the problem type.
	//
	// It SHOULD NOT change from occurrence to
	// occurrence of the problem, except for purposes
	// of localization (e.g., using proactive content
	// negotiation; see [RFC7231], Section 3.4).
	//
	Title string `json:"title,omitempty"`

	// Status The HTTP status code ([RFC7231], Section 6)
	// generated by the origin server for this occurrence
	// of the problem.
	Status int `json:"status,omitempty"`

	// Detail A human-readable explanation specific to this
	// occurrence of the problem.
	Detail string `json:"detail,omitempty"`

	// Instance A URI reference that identifies the specific
	// occurrence of the problem.  It may or may not yield
	// further information if dereferenced.
	Instance string `json:"instance,omitempty"`
}

ProblemResponse Encodes a problem into an appropriate response body.

func (ProblemResponse) Error

func (p ProblemResponse) Error() string

Error implements the error interface for ProblemResponse

type ProductOffering

type ProductOffering interface {
	Polymorphic
}

ProductOffering Polymorphic Product Offering

type ProductOfferingPatch

type ProductOfferingPatch interface {
	Polymorphic
}

ProductOfferingPatch Polymorphic Product Offering

type ProductOfferingsListQuery

type ProductOfferingsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// Type is a type
	Type string `json:"type,omitempty"`

	// ResourceType is a resource_type
	ResourceType string `json:"resource_type,omitempty"`

	// Name is a name
	Name string `json:"name,omitempty"`

	// HandoverMetroArea is a handover_metro_area
	HandoverMetroArea string `json:"handover_metro_area,omitempty"`

	// HandoverMetroAreaNetwork is a handover_metro_area_network
	HandoverMetroAreaNetwork string `json:"handover_metro_area_network,omitempty"`

	// HandoverPop is a handover_pop
	HandoverPop string `json:"handover_pop,omitempty"`

	// ServiceMetroArea is a service_metro_area
	ServiceMetroArea string `json:"service_metro_area,omitempty"`

	// ServiceMetroAreaNetwork is a service_metro_area_network
	ServiceMetroAreaNetwork string `json:"service_metro_area_network,omitempty"`

	// ServiceProvider is a service_provider
	ServiceProvider string `json:"service_provider,omitempty"`

	// DowngradeAllowed is a downgrade_allowed
	DowngradeAllowed string `json:"downgrade_allowed,omitempty"`

	// UpgradeAllowed is a upgrade_allowed
	UpgradeAllowed string `json:"upgrade_allowed,omitempty"`

	// Bandwidth is a bandwidth
	Bandwidth int `json:"bandwidth,omitempty"`

	// PhysicalPortSpeed is a physical_port_speed
	PhysicalPortSpeed int `json:"physical_port_speed,omitempty"`

	// ServiceProviderRegion is a service_provider_region
	ServiceProviderRegion string `json:"service_provider_region,omitempty"`

	// ServiceProviderPop is a service_provider_pop
	ServiceProviderPop string `json:"service_provider_pop,omitempty"`

	// DeliveryMethod is a delivery_method
	DeliveryMethod string `json:"delivery_method,omitempty"`

	// CloudKey is a cloud_key
	CloudKey string `json:"cloud_key,omitempty"`

	// Fields is a fields
	Fields string `json:"fields,omitempty"`
}

ProductOfferingsListQuery has all query parameters for ProductOfferingsList

func (*ProductOfferingsListQuery) RawQuery

func (p *ProductOfferingsListQuery) RawQuery() string

RawQuery creates a query string for ProductOfferingsListQuery

type RefreshTokenRequest

type RefreshTokenRequest struct {
	// RefreshToken is a refresh_token
	RefreshToken string `json:"refresh_token,omitempty"`
}

RefreshTokenRequest RefreshTokenRequest

type Response

type Response interface{}

Response is an IX-API general response

type Role

type Role struct {
	// Name The name of the role.
	//
	Name string `json:"name,omitempty"`

	// RequiredFields A list of required field names.
	//
	RequiredFields []string `json:"required_fields,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

Role Role for a Contact

type RoleAssignment

type RoleAssignment struct {
	// Role The `id` of a role the contact is assigned to.
	//
	Role string `json:"role,omitempty"`

	// Contact The `id` of a contact the role is assigned to.
	//
	Contact string `json:"contact,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

RoleAssignment A role assignment for a contact

type RoleAssignmentPatch

type RoleAssignmentPatch struct {
	// Role The `id` of a role the contact is assigned to.
	//
	Role *string `json:"role,omitempty"`

	// Contact The `id` of a contact the role is assigned to.
	//
	Contact *string `json:"contact,omitempty"`
}

RoleAssignmentPatch A role assignment update

type RoleAssignmentRequest

type RoleAssignmentRequest struct {
	// Role The `id` of a role the contact is assigned to.
	//
	Role string `json:"role,omitempty"`

	// Contact The `id` of a contact the role is assigned to.
	//
	Contact string `json:"contact,omitempty"`
}

RoleAssignmentRequest A role assignment request

type RoleAssignmentUpdate

type RoleAssignmentUpdate struct {
	// Role The `id` of a role the contact is assigned to.
	//
	Role string `json:"role,omitempty"`

	// Contact The `id` of a contact the role is assigned to.
	//
	Contact string `json:"contact,omitempty"`
}

RoleAssignmentUpdate A role assignemnt update

type RoleAssignmentsListQuery

type RoleAssignmentsListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// Contact is a contact
	Contact string `json:"contact,omitempty"`

	// Role is a role
	Role string `json:"role,omitempty"`
}

RoleAssignmentsListQuery has all query parameters for RoleAssignmentsList

func (*RoleAssignmentsListQuery) RawQuery

func (r *RoleAssignmentsListQuery) RawQuery() string

RawQuery creates a query string for RoleAssignmentsListQuery

type RolePatch

type RolePatch struct {
	// Name The name of the role.
	//
	Name *string `json:"name,omitempty"`

	// RequiredFields A list of required field names.
	//
	RequiredFields []string `json:"required_fields,omitempty"`
}

RolePatch Role Update

type RoleRequest

type RoleRequest struct {
	// Name The name of the role.
	//
	Name string `json:"name,omitempty"`

	// RequiredFields A list of required field names.
	//
	RequiredFields []string `json:"required_fields,omitempty"`
}

RoleRequest Create Role

type RoleUpdate

type RoleUpdate struct {
	// Name The name of the role.
	//
	Name string `json:"name,omitempty"`

	// RequiredFields A list of required field names.
	//
	RequiredFields []string `json:"required_fields,omitempty"`
}

RoleUpdate Role Update

type RolesListQuery

type RolesListQuery struct {
	// ID is a id
	ID []string `json:"id,omitempty"`

	// Name is a name
	Name string `json:"name,omitempty"`

	// Contact is a contact
	Contact string `json:"contact,omitempty"`
}

RolesListQuery has all query parameters for RolesList

func (*RolesListQuery) RawQuery

func (r *RolesListQuery) RawQuery() string

RawQuery creates a query string for RolesListQuery

type RouteServerNetworkFeature

type RouteServerNetworkFeature struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`

	// Name is a name
	Name string `json:"name,omitempty"`

	// Required is a required
	Required bool `json:"required,omitempty"`

	// NfcRequiredContactRoles The configuration will require at least one of each of the
	// specified roles assigned to contacts.
	//
	// The role assignments is associated with the network feature
	// config through the `role_assignments` list property.
	NfcRequiredContactRoles []string `json:"nfc_required_contact_roles,omitempty"`

	// Flags A list of IXP specific feature flags. This can be used
	// to see if e.g. RPKI hard filtering is available.
	Flags []*IXPSpecificFeatureFlag `json:"flags,omitempty"`

	// NetworkService is a network_service
	NetworkService string `json:"network_service,omitempty"`

	// ASN is a asn
	ASN int `json:"asn,omitempty"`

	// FQDN The FQDN of the route server.
	//
	FQDN string `json:"fqdn,omitempty"`

	// LookingGlassURL The url of the looking glass.
	//
	LookingGlassURL *string `json:"looking_glass_url,omitempty"`

	// AddressFamilies When creating a route server feature config, remember
	// to specify which address family or families to use:
	//
	// If the route server network feature only supports `af_inet`,
	// then the `as_set_v4` in the network feature config is required.
	//
	// If only `af_inet6` is supported, then the `as_set_v6` is required.
	//
	// If both `af_inet` and `af_inet6` are supported, either
	// `as_set_v4` or `as_set_v6` is required, but both can be provided
	// in the network service config.
	//
	AddressFamilies []string `json:"address_families,omitempty"`

	// SessionMode When creating a route server feature config, remember
	// to specify the same session_mode as the route server.
	//
	SessionMode string `json:"session_mode,omitempty"`

	// AvailableBGPSessionTypes The route server provides the following session modes.
	//
	AvailableBGPSessionTypes []string `json:"available_bgp_session_types,omitempty"`

	// IPV4 IPv4 address in [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation)
	// notation.
	//
	// This field is only set if the `address_families` include `af_inet`.
	//
	IPV4 *string `json:"ip_v4,omitempty"`

	// IPV6 IPv6 address in hexadecimal colon separated notation.
	//
	// This field is only set if the `address_families` include `af_inet6`.
	//
	IPV6 *string `json:"ip_v6,omitempty"`
}

RouteServerNetworkFeature Route Server Network Feature

func (RouteServerNetworkFeature) PolymorphicType

func (r RouteServerNetworkFeature) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type RouteServerNetworkFeatureConfig

type RouteServerNetworkFeatureConfig struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// State is a state
	State string `json:"state,omitempty"`

	// Status is a status
	Status []*Status `json:"status,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// NetworkFeature is a network_feature
	NetworkFeature string `json:"network_feature,omitempty"`

	// NetworkServiceConfig is a network_service_config
	NetworkServiceConfig string `json:"network_service_config,omitempty"`

	// Flags A list of IXP specific feature flag configs. This can be used
	// to enable or disable a specific feature flag.
	Flags []*IXPSpecificFeatureFlagConfig `json:"flags,omitempty"`

	// ASN The ASN of the peer.
	//
	ASN int `json:"asn,omitempty"`

	// Password The cleartext BGP session password
	Password *string `json:"password,omitempty"`

	// AsSetV4 AS-SET of the customer for IPv4 prefix filtering.
	// This is used to generate filters on the router servers.
	//
	// Only valid referenced prefixes within the AS-SET
	// are allowed inbound to the route server. All other routes are
	// filtered.
	//
	// This field is *required* if the route server network feature only
	// supports the `af_inet` address family.
	// If multiple address families are supported, it is optional if the
	// `as_set_v6` is provided.
	//
	// Important: The format has to be: "AS-SET@IRR". IRR is the database
	// where the AS-SET is registred. Typically used IRR's are RADB, RIPE,
	// NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC
	//
	AsSetV4 *string `json:"as_set_v4,omitempty"`

	// AsSetV6 AS-SET of the customer for IPv6. This is used to generate filters
	// on the router servers. Only valid referenced prefixes within
	// the AS-SET are allowed inbound to the route server.
	// All other routes are filtered.
	//
	// This field is *required* if the route server network feature only
	// supports the `af_inet6` address family.
	// If multiple address families are supported, it is optional if the
	// `as_set_v4` is provided.
	//
	// Important: The format has to be: "AS-SET@IRR". IRR is the database
	// where the AS-SET is registred. Typically used IRR's are RADB, RIPE,
	// NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC
	//
	AsSetV6 *string `json:"as_set_v6,omitempty"`

	// MaxPrefixV4 Announcing more than `max_prefix` IPv4 prefixes the bgp
	// session will be droped.
	//
	MaxPrefixV4 *int `json:"max_prefix_v4,omitempty"`

	// MaxPrefixV6 Announcing more than `max_prefix` IPv6 prefixes the bgp
	// session will be droped.
	//
	MaxPrefixV6 *int `json:"max_prefix_v6,omitempty"`

	// InsertIxpASN Insert the ASN of the exchange into the AS path. This function is only
	// used in special cases. In 99% of all cases, it should be false.
	//
	InsertIxpASN *bool `json:"insert_ixp_asn,omitempty"`

	// SessionMode Set the session mode with the routeserver.
	//
	SessionMode string `json:"session_mode,omitempty"`

	// BGPSessionType The session type describes which of the both parties will open the
	// connection. If set to passive, the customer router needs to open
	// the connection. If its set to active, the route server will open
	// the connection. The standard behavior on most exchanges is passive.
	//
	BGPSessionType string `json:"bgp_session_type,omitempty"`

	// IP The BGP session will be established from this IP address,
	// referenced by ID.
	//
	// Only IDs of IPs assigned to the corresponding network service
	// config can be used.
	IP string `json:"ip,omitempty"`

	// ID is a id
	ID string `json:"id,omitempty"`
}

RouteServerNetworkFeatureConfig Route Server Network Feature Config

func (RouteServerNetworkFeatureConfig) PolymorphicType

func (r RouteServerNetworkFeatureConfig) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type RouteServerNetworkFeatureConfigPatch

type RouteServerNetworkFeatureConfigPatch struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount *string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount *string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// ASN The ASN of the peer.
	//
	ASN *int `json:"asn,omitempty"`

	// Password The cleartext BGP session password
	Password *string `json:"password,omitempty"`

	// AsSetV4 AS-SET of the customer for IPv4 prefix filtering.
	// This is used to generate filters on the router servers.
	//
	// Only valid referenced prefixes within the AS-SET
	// are allowed inbound to the route server. All other routes are
	// filtered.
	//
	// This field is *required* if the route server network feature only
	// supports the `af_inet` address family.
	// If multiple address families are supported, it is optional if the
	// `as_set_v6` is provided.
	//
	// Important: The format has to be: "AS-SET@IRR". IRR is the database
	// where the AS-SET is registred. Typically used IRR's are RADB, RIPE,
	// NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC
	//
	AsSetV4 *string `json:"as_set_v4,omitempty"`

	// AsSetV6 AS-SET of the customer for IPv6. This is used to generate filters
	// on the router servers. Only valid referenced prefixes within
	// the AS-SET are allowed inbound to the route server.
	// All other routes are filtered.
	//
	// This field is *required* if the route server network feature only
	// supports the `af_inet6` address family.
	// If multiple address families are supported, it is optional if the
	// `as_set_v4` is provided.
	//
	// Important: The format has to be: "AS-SET@IRR". IRR is the database
	// where the AS-SET is registred. Typically used IRR's are RADB, RIPE,
	// NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC
	//
	AsSetV6 *string `json:"as_set_v6,omitempty"`

	// MaxPrefixV4 Announcing more than `max_prefix` IPv4 prefixes the bgp
	// session will be droped.
	//
	MaxPrefixV4 *int `json:"max_prefix_v4,omitempty"`

	// MaxPrefixV6 Announcing more than `max_prefix` IPv6 prefixes the bgp
	// session will be droped.
	//
	MaxPrefixV6 *int `json:"max_prefix_v6,omitempty"`

	// InsertIxpASN Insert the ASN of the exchange into the AS path. This function is only
	// used in special cases. In 99% of all cases, it should be false.
	//
	InsertIxpASN *bool `json:"insert_ixp_asn,omitempty"`

	// SessionMode Set the session mode with the routeserver.
	//
	SessionMode *string `json:"session_mode,omitempty"`

	// BGPSessionType The session type describes which of the both parties will open the
	// connection. If set to passive, the customer router needs to open
	// the connection. If its set to active, the route server will open
	// the connection. The standard behavior on most exchanges is passive.
	//
	BGPSessionType *string `json:"bgp_session_type,omitempty"`

	// IP The BGP session will be established from this IP address,
	// referenced by ID.
	//
	// Only IDs of IPs assigned to the corresponding network service
	// config can be used.
	IP *string `json:"ip,omitempty"`
}

RouteServerNetworkFeatureConfigPatch Route Server Network Feature Config Update

func (RouteServerNetworkFeatureConfigPatch) PolymorphicType

func (r RouteServerNetworkFeatureConfigPatch) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type RouteServerNetworkFeatureConfigRequest

type RouteServerNetworkFeatureConfigRequest struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// PurchaseOrder Purchase Order ID which will be displayed on the invoice.
	// *(Sensitive Property)*
	//
	PurchaseOrder *string `json:"purchase_order,omitempty"`

	// ContractRef A reference to a contract. If no specific contract is used,
	// a default MAY be chosen by the implementer.
	// *(Sensitive Property)*
	//
	ContractRef *string `json:"contract_ref,omitempty"`

	// BillingAccount An account requires billing_information to be used as a `billing_account`.
	// *(Sensitive Property)*
	BillingAccount string `json:"billing_account,omitempty"`

	// RoleAssignments A set of `RoleAssignment`s. See the documentation
	// on the specific `required_contact_roles`,
	// `nfc_required_contact_roles` or `nsc_required_contact_roles`
	// on what `RoleAssignment`s to provide.
	//
	// Please note, that any contact role can additionally be provided.
	// The presence of at least one of each required contact roles
	// is necessary.
	//
	RoleAssignments []string `json:"role_assignments,omitempty"`

	// NetworkFeature is a network_feature
	NetworkFeature string `json:"network_feature,omitempty"`

	// NetworkServiceConfig is a network_service_config
	NetworkServiceConfig string `json:"network_service_config,omitempty"`

	// Flags A list of IXP specific feature flag configs. This can be used
	// to enable or disable a specific feature flag.
	Flags []*IXPSpecificFeatureFlagConfig `json:"flags,omitempty"`

	// ASN The ASN of the peer.
	//
	ASN int `json:"asn,omitempty"`

	// Password The cleartext BGP session password
	Password *string `json:"password,omitempty"`

	// AsSetV4 AS-SET of the customer for IPv4 prefix filtering.
	// This is used to generate filters on the router servers.
	//
	// Only valid referenced prefixes within the AS-SET
	// are allowed inbound to the route server. All other routes are
	// filtered.
	//
	// This field is *required* if the route server network feature only
	// supports the `af_inet` address family.
	// If multiple address families are supported, it is optional if the
	// `as_set_v6` is provided.
	//
	// Important: The format has to be: "AS-SET@IRR". IRR is the database
	// where the AS-SET is registred. Typically used IRR's are RADB, RIPE,
	// NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC
	//
	AsSetV4 *string `json:"as_set_v4,omitempty"`

	// AsSetV6 AS-SET of the customer for IPv6. This is used to generate filters
	// on the router servers. Only valid referenced prefixes within
	// the AS-SET are allowed inbound to the route server.
	// All other routes are filtered.
	//
	// This field is *required* if the route server network feature only
	// supports the `af_inet6` address family.
	// If multiple address families are supported, it is optional if the
	// `as_set_v4` is provided.
	//
	// Important: The format has to be: "AS-SET@IRR". IRR is the database
	// where the AS-SET is registred. Typically used IRR's are RADB, RIPE,
	// NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC
	//
	AsSetV6 *string `json:"as_set_v6,omitempty"`

	// MaxPrefixV4 Announcing more than `max_prefix` IPv4 prefixes the bgp
	// session will be droped.
	//
	MaxPrefixV4 *int `json:"max_prefix_v4,omitempty"`

	// MaxPrefixV6 Announcing more than `max_prefix` IPv6 prefixes the bgp
	// session will be droped.
	//
	MaxPrefixV6 *int `json:"max_prefix_v6,omitempty"`

	// InsertIxpASN Insert the ASN of the exchange into the AS path. This function is only
	// used in special cases. In 99% of all cases, it should be false.
	//
	InsertIxpASN *bool `json:"insert_ixp_asn,omitempty"`

	// SessionMode Set the session mode with the routeserver.
	//
	SessionMode string `json:"session_mode,omitempty"`

	// BGPSessionType The session type describes which of the both parties will open the
	// connection. If set to passive, the customer router needs to open
	// the connection. If its set to active, the route server will open
	// the connection. The standard behavior on most exchanges is passive.
	//
	BGPSessionType string `json:"bgp_session_type,omitempty"`

	// IP The BGP session will be established from this IP address,
	// referenced by ID.
	//
	// Only IDs of IPs assigned to the corresponding network service
	// config can be used.
	IP string `json:"ip,omitempty"`
}

RouteServerNetworkFeatureConfigRequest Route Server Network Feature Config Request

func (RouteServerNetworkFeatureConfigRequest) PolymorphicType

func (r RouteServerNetworkFeatureConfigRequest) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type RouteServerNetworkFeatureConfigUpdate

type RouteServerNetworkFeatureConfigUpdate struct {
	// Type is a type
	Type string `json:"type,omitempty"`

	// ManagingAccount The `id` of the account responsible for managing the service via
	// the API. A manager can read and update the state of entities.
	//
	ManagingAccount string `json:"managing_account,omitempty"`

	// ConsumingAccount The `id` of the account consuming a service.
	//
	// Used to be `owning_customer`.
	//
	ConsumingAccount string `json:"consuming_account,omitempty"`

	// ExternalRef Reference field, free to use for the API user.
	// *(Sensitive Property)*
	//
	ExternalRef *string `json:"external_ref,omitempty"`

	// ASN The ASN of the peer.
	//
	ASN int `json:"asn,omitempty"`

	// Password The cleartext BGP session password
	Password *string `json:"password,omitempty"`

	// AsSetV4 AS-SET of the customer for IPv4 prefix filtering.
	// This is used to generate filters on the router servers.
	//
	// Only valid referenced prefixes within the AS-SET
	// are allowed inbound to the route server. All other routes are
	// filtered.
	//
	// This field is *required* if the route server network feature only
	// supports the `af_inet` address family.
	// If multiple address families are supported, it is optional if the
	// `as_set_v6` is provided.
	//
	// Important: The format has to be: "AS-SET@IRR". IRR is the database
	// where the AS-SET is registred. Typically used IRR's are RADB, RIPE,
	// NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC
	//
	AsSetV4 *string `json:"as_set_v4,omitempty"`

	// AsSetV6 AS-SET of the customer for IPv6. This is used to generate filters
	// on the router servers. Only valid referenced prefixes within
	// the AS-SET are allowed inbound to the route server.
	// All other routes are filtered.
	//
	// This field is *required* if the route server network feature only
	// supports the `af_inet6` address family.
	// If multiple address families are supported, it is optional if the
	// `as_set_v4` is provided.
	//
	// Important: The format has to be: "AS-SET@IRR". IRR is the database
	// where the AS-SET is registred. Typically used IRR's are RADB, RIPE,
	// NTTCOM, APNIC, ALTDB, LEVEL3, ARIN, AFRINIC, LACNIC
	//
	AsSetV6 *string `json:"as_set_v6,omitempty"`

	// MaxPrefixV4 Announcing more than `max_prefix` IPv4 prefixes the bgp
	// session will be droped.
	//
	MaxPrefixV4 *int `json:"max_prefix_v4,omitempty"`

	// MaxPrefixV6 Announcing more than `max_prefix` IPv6 prefixes the bgp
	// session will be droped.
	//
	MaxPrefixV6 *int `json:"max_prefix_v6,omitempty"`

	// InsertIxpASN Insert the ASN of the exchange into the AS path. This function is only
	// used in special cases. In 99% of all cases, it should be false.
	//
	InsertIxpASN *bool `json:"insert_ixp_asn,omitempty"`

	// SessionMode Set the session mode with the routeserver.
	//
	SessionMode string `json:"session_mode,omitempty"`

	// BGPSessionType The session type describes which of the both parties will open the
	// connection. If set to passive, the customer router needs to open
	// the connection. If its set to active, the route server will open
	// the connection. The standard behavior on most exchanges is passive.
	//
	BGPSessionType string `json:"bgp_session_type,omitempty"`

	// IP The BGP session will be established from this IP address,
	// referenced by ID.
	//
	// Only IDs of IPs assigned to the corresponding network service
	// config can be used.
	IP string `json:"ip,omitempty"`
}

RouteServerNetworkFeatureConfigUpdate Route Server Network Feature Config Update

func (RouteServerNetworkFeatureConfigUpdate) PolymorphicType

func (r RouteServerNetworkFeatureConfigUpdate) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type Status

type Status struct {
	// Severity We are using syslog severity levels: 0 = Emergency,
	// 1 = Alert, 2 = Critical, 3 = Error, 4 = Warning,
	// 5 = Notice, 6 = Informational, 7 = Debug.
	//
	Severity int `json:"severity,omitempty"`

	// Tag A machine readable message identifier.
	//
	Tag string `json:"tag,omitempty"`

	// Message A human readable message, describing the problem
	// and may contain hints for resolution.
	//
	Message string `json:"message,omitempty"`

	// Attrs Optional machine readable key value pairs
	// supplementing the message.
	//
	// A custom, detailed or localized error messagen can
	// be presented to the user, derived from the `tag` and `attrs`.
	//
	Attrs map[string]interface{} `json:"attrs,omitempty"`

	// Timestamp The time and date when the event occured.
	Timestamp time.Time `json:"timestamp,omitempty"`
}

Status Status Message

type VLANConfig

type VLANConfig interface {
	Polymorphic
}

VLANConfig The vlan configuration defines how the service is made available on the connection.

type VLANConfigDot1Q

type VLANConfigDot1Q struct {
	// VLANType is a vlan_type
	VLANType string `json:"vlan_type,omitempty"`

	// VLAN A VLAN tag. If `null`, the IXP will auto-select
	// a valid vlan-id.
	//
	VLAN *int `json:"vlan,omitempty"`

	// VLANEthertype The ethertype of the vlan in hexadecimal notation.
	VLANEthertype *string `json:"vlan_ethertype,omitempty"`
}

VLANConfigDot1Q A Dot1Q vlan configuration

func (VLANConfigDot1Q) PolymorphicType

func (v VLANConfigDot1Q) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type VLANConfigPort

type VLANConfigPort struct {
	// VLANType is a vlan_type
	VLANType string `json:"vlan_type,omitempty"`
}

VLANConfigPort A Port vlan configuration

func (VLANConfigPort) PolymorphicType

func (v VLANConfigPort) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type VLANConfigQinQ

type VLANConfigQinQ struct {
	// VLANType is a vlan_type
	VLANType string `json:"vlan_type,omitempty"`

	// OuterVLAN The outer VLAN id.
	// If `null`, the IXP will auto-select
	// a valid vlan-id.
	//
	OuterVLAN *int `json:"outer_vlan,omitempty"`

	// OuterVLANEthertype The ethertype of the outer tag in hexadecimal notation.
	OuterVLANEthertype *string `json:"outer_vlan_ethertype,omitempty"`

	// InnerVLAN The inner VLAN id.
	//
	InnerVLAN int `json:"inner_vlan,omitempty"`
}

VLANConfigQinQ A QinQ vlan configuration

func (VLANConfigQinQ) PolymorphicType

func (v VLANConfigQinQ) PolymorphicType() string

PolymorphicType implements the polymorphic interface

type ValidationError

type ValidationError struct {
	ProblemResponse
	Properties []ValidationErrorProp `json:"properties"`
}

ValidationError indicates that the validation of user data failed. The Properties attribute should contain a list of property names and reasons.

func AsErrValidationFailed

func AsErrValidationFailed(err error) *ValidationError

AsErrValidationFailed tries to convert an error into a ValidationError

func (ValidationError) Error

func (e ValidationError) Error() string

Error implements the error interface

type ValidationErrorProp

type ValidationErrorProp struct {
	// Name is a name
	Name string `json:"name,omitempty"`

	// Reason is a reason
	Reason json.RawMessage `json:"reason,omitempty"`
}

ValidationErrorProp A failed validation

type ValidationErrorProperty

type ValidationErrorProperty struct {
	// Name is a name
	Name string `json:"name,omitempty"`

	// Reason is a reason
	Reason string `json:"reason,omitempty"`
}

ValidationErrorProperty A failed validation

Jump to

Keyboard shortcuts

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