v1alpha1

package
v0.0.0-...-6fe2522 Latest Latest
Warning

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

Go to latest
Published: Oct 3, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

+kubebuilder:object:generate=true +groupName=distributedportgroup.vsphere.upbound.io +versionName=v1alpha1

Index

Constants

View Source
const (
	CRDGroup   = "distributedportgroup.vsphere.upbound.io"
	CRDVersion = "v1alpha1"
)

Package type metadata.

Variables

View Source
var (
	// CRDGroupVersion is the API Group Version used to register the objects
	CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)
View Source
var (
	PortGroup_Kind             = "PortGroup"
	PortGroup_GroupKind        = schema.GroupKind{Group: CRDGroup, Kind: PortGroup_Kind}.String()
	PortGroup_KindAPIVersion   = PortGroup_Kind + "." + CRDGroupVersion.String()
	PortGroup_GroupVersionKind = CRDGroupVersion.WithKind(PortGroup_Kind)
)

Repository type metadata.

Functions

This section is empty.

Types

type PortGroup

type PortGroup struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`
	Spec              PortGroupSpec   `json:"spec"`
	Status            PortGroupStatus `json:"status,omitempty"`
}

PortGroup is the Schema for the PortGroups API. Provides a vSphere distributed port group resource. This can be used to create and manage port groups on a vSphere Distributed Switch. +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status" +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name" +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" +kubebuilder:subresource:status +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,vsphere}

func (*PortGroup) DeepCopy

func (in *PortGroup) DeepCopy() *PortGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortGroup.

func (*PortGroup) DeepCopyInto

func (in *PortGroup) DeepCopyInto(out *PortGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PortGroup) DeepCopyObject

func (in *PortGroup) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*PortGroup) GetCondition

func (mg *PortGroup) GetCondition(ct xpv1.ConditionType) xpv1.Condition

GetCondition of this PortGroup.

func (*PortGroup) GetConnectionDetailsMapping

func (tr *PortGroup) GetConnectionDetailsMapping() map[string]string

GetConnectionDetailsMapping for this PortGroup

func (*PortGroup) GetDeletionPolicy

func (mg *PortGroup) GetDeletionPolicy() xpv1.DeletionPolicy

GetDeletionPolicy of this PortGroup.

func (*PortGroup) GetID

func (tr *PortGroup) GetID() string

GetID returns ID of underlying Terraform resource of this PortGroup

func (*PortGroup) GetObservation

func (tr *PortGroup) GetObservation() (map[string]any, error)

GetObservation of this PortGroup

func (*PortGroup) GetParameters

func (tr *PortGroup) GetParameters() (map[string]any, error)

GetParameters of this PortGroup

func (*PortGroup) GetProviderConfigReference

func (mg *PortGroup) GetProviderConfigReference() *xpv1.Reference

GetProviderConfigReference of this PortGroup.

func (*PortGroup) GetProviderReference

func (mg *PortGroup) GetProviderReference() *xpv1.Reference

GetProviderReference of this PortGroup. Deprecated: Use GetProviderConfigReference.

func (*PortGroup) GetPublishConnectionDetailsTo

func (mg *PortGroup) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo

GetPublishConnectionDetailsTo of this PortGroup.

func (*PortGroup) GetTerraformResourceType

func (mg *PortGroup) GetTerraformResourceType() string

GetTerraformResourceType returns Terraform resource type for this PortGroup

func (*PortGroup) GetTerraformSchemaVersion

func (tr *PortGroup) GetTerraformSchemaVersion() int

GetTerraformSchemaVersion returns the associated Terraform schema version

func (*PortGroup) GetWriteConnectionSecretToReference

func (mg *PortGroup) GetWriteConnectionSecretToReference() *xpv1.SecretReference

GetWriteConnectionSecretToReference of this PortGroup.

func (*PortGroup) LateInitialize

func (tr *PortGroup) LateInitialize(attrs []byte) (bool, error)

LateInitialize this PortGroup using its observed tfState. returns True if there are any spec changes for the resource.

func (*PortGroup) SetConditions

func (mg *PortGroup) SetConditions(c ...xpv1.Condition)

SetConditions of this PortGroup.

func (*PortGroup) SetDeletionPolicy

func (mg *PortGroup) SetDeletionPolicy(r xpv1.DeletionPolicy)

SetDeletionPolicy of this PortGroup.

func (*PortGroup) SetObservation

func (tr *PortGroup) SetObservation(obs map[string]any) error

SetObservation for this PortGroup

func (*PortGroup) SetParameters

func (tr *PortGroup) SetParameters(params map[string]any) error

SetParameters for this PortGroup

func (*PortGroup) SetProviderConfigReference

func (mg *PortGroup) SetProviderConfigReference(r *xpv1.Reference)

SetProviderConfigReference of this PortGroup.

func (*PortGroup) SetProviderReference

func (mg *PortGroup) SetProviderReference(r *xpv1.Reference)

SetProviderReference of this PortGroup. Deprecated: Use SetProviderConfigReference.

func (*PortGroup) SetPublishConnectionDetailsTo

func (mg *PortGroup) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo)

SetPublishConnectionDetailsTo of this PortGroup.

func (*PortGroup) SetWriteConnectionSecretToReference

func (mg *PortGroup) SetWriteConnectionSecretToReference(r *xpv1.SecretReference)

SetWriteConnectionSecretToReference of this PortGroup.

type PortGroupList

type PortGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []PortGroup `json:"items"`
}

PortGroupList contains a list of PortGroups

func (*PortGroupList) DeepCopy

func (in *PortGroupList) DeepCopy() *PortGroupList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortGroupList.

func (*PortGroupList) DeepCopyInto

func (in *PortGroupList) DeepCopyInto(out *PortGroupList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*PortGroupList) DeepCopyObject

func (in *PortGroupList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*PortGroupList) GetItems

func (l *PortGroupList) GetItems() []resource.Managed

GetItems of this PortGroupList.

type PortGroupObservation

type PortGroupObservation struct {

	// : The current version of the port group configuration,
	// incremented by subsequent updates to the port group.
	// Version string of the configuration that this spec is trying to change.
	ConfigVersion *string `json:"configVersion,omitempty" tf:"config_version,omitempty"`

	// : The managed object reference ID of the created
	// port group.
	ID *string `json:"id,omitempty" tf:"id,omitempty"`

	// : The generated UUID of the port group.
	// The generated UUID of the portgroup.
	Key *string `json:"key,omitempty" tf:"key,omitempty"`
}

func (*PortGroupObservation) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortGroupObservation.

func (*PortGroupObservation) DeepCopyInto

func (in *PortGroupObservation) DeepCopyInto(out *PortGroupObservation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PortGroupParameters

type PortGroupParameters struct {

	// List of active uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
	// +kubebuilder:validation:Optional
	ActiveUplinks []*string `json:"activeUplinks,omitempty" tf:"active_uplinks,omitempty"`

	// Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address than that of its own.
	// +kubebuilder:validation:Optional
	AllowForgedTransmits *bool `json:"allowForgedTransmits,omitempty" tf:"allow_forged_transmits,omitempty"`

	// Controls whether or not the Media Access Control (MAC) address can be changed.
	// +kubebuilder:validation:Optional
	AllowMacChanges *bool `json:"allowMacChanges,omitempty" tf:"allow_mac_changes,omitempty"`

	// Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port.
	// +kubebuilder:validation:Optional
	AllowPromiscuous *bool `json:"allowPromiscuous,omitempty" tf:"allow_promiscuous,omitempty"`

	// Allows the port group to create additional ports
	// past the limit specified in number_of_ports if necessary. Default: true.
	// Auto-expands the port group beyond the port count configured in number_of_ports when necessary.
	// +kubebuilder:validation:Optional
	AutoExpand *bool `json:"autoExpand,omitempty" tf:"auto_expand,omitempty"`

	// Indicates whether to block all ports by default.
	// +kubebuilder:validation:Optional
	BlockAllPorts *bool `json:"blockAllPorts,omitempty" tf:"block_all_ports,omitempty"`

	// Allow the port shutdown
	// policy to be overridden on an individual port.
	// Allow the blocked setting of an individual port to override the setting in the portgroup.
	// +kubebuilder:validation:Optional
	BlockOverrideAllowed *bool `json:"blockOverrideAllowed,omitempty" tf:"block_override_allowed,omitempty"`

	// Enable beacon probing on the ports this policy applies to.
	// +kubebuilder:validation:Optional
	CheckBeacon *bool `json:"checkBeacon,omitempty" tf:"check_beacon,omitempty"`

	// Map of custom attribute ids to attribute
	// value string to set for port group. See here
	// for a reference on how to set values for custom attributes.
	// A list of custom attributes to set on this resource.
	// +kubebuilder:validation:Optional
	CustomAttributes map[string]*string `json:"customAttributes,omitempty" tf:"custom_attributes,omitempty"`

	// An optional description for the port group.
	// The description of the portgroup.
	// +kubebuilder:validation:Optional
	Description *string `json:"description,omitempty" tf:"description,omitempty"`

	// Allow VMDirectPath Gen2 on the ports this policy applies to.
	// +kubebuilder:validation:Optional
	DirectpathGen2Allowed *bool `json:"directpathGen2Allowed,omitempty" tf:"directpath_gen2_allowed,omitempty"`

	// The ID of the VDS to add the
	// port group to. Forces a new resource if changed.
	// The UUID of the DVS to attach this port group to.
	// +kubebuilder:validation:Required
	DistributedVirtualSwitchUUID *string `json:"distributedVirtualSwitchUuid" tf:"distributed_virtual_switch_uuid,omitempty"`

	// The average egress bandwidth in bits per second if egress shaping is enabled on the port.
	// +kubebuilder:validation:Optional
	EgressShapingAverageBandwidth *float64 `json:"egressShapingAverageBandwidth,omitempty" tf:"egress_shaping_average_bandwidth,omitempty"`

	// The maximum egress burst size allowed in bytes if egress shaping is enabled on the port.
	// +kubebuilder:validation:Optional
	EgressShapingBurstSize *float64 `json:"egressShapingBurstSize,omitempty" tf:"egress_shaping_burst_size,omitempty"`

	// True if the traffic shaper is enabled for egress traffic on the port.
	// +kubebuilder:validation:Optional
	EgressShapingEnabled *bool `json:"egressShapingEnabled,omitempty" tf:"egress_shaping_enabled,omitempty"`

	// The peak egress bandwidth during bursts in bits per second if egress traffic shaping is enabled on the port.
	// +kubebuilder:validation:Optional
	EgressShapingPeakBandwidth *float64 `json:"egressShapingPeakBandwidth,omitempty" tf:"egress_shaping_peak_bandwidth,omitempty"`

	// If true, the teaming policy will re-activate failed interfaces higher in precedence when they come back up.
	// +kubebuilder:validation:Optional
	Failback *bool `json:"failback,omitempty" tf:"failback,omitempty"`

	// The average ingress bandwidth in bits per second if ingress shaping is enabled on the port.
	// +kubebuilder:validation:Optional
	IngressShapingAverageBandwidth *float64 `json:"ingressShapingAverageBandwidth,omitempty" tf:"ingress_shaping_average_bandwidth,omitempty"`

	// The maximum ingress burst size allowed in bytes if ingress shaping is enabled on the port.
	// +kubebuilder:validation:Optional
	IngressShapingBurstSize *float64 `json:"ingressShapingBurstSize,omitempty" tf:"ingress_shaping_burst_size,omitempty"`

	// True if the traffic shaper is enabled for ingress traffic on the port.
	// +kubebuilder:validation:Optional
	IngressShapingEnabled *bool `json:"ingressShapingEnabled,omitempty" tf:"ingress_shaping_enabled,omitempty"`

	// The peak ingress bandwidth during bursts in bits per second if ingress traffic shaping is enabled on the port.
	// +kubebuilder:validation:Optional
	IngressShapingPeakBandwidth *float64 `json:"ingressShapingPeakBandwidth,omitempty" tf:"ingress_shaping_peak_bandwidth,omitempty"`

	// Whether or not to enable LACP on all uplink ports.
	// +kubebuilder:validation:Optional
	LacpEnabled *bool `json:"lacpEnabled,omitempty" tf:"lacp_enabled,omitempty"`

	// The uplink LACP mode to use. Can be one of active or passive.
	// +kubebuilder:validation:Optional
	LacpMode *string `json:"lacpMode,omitempty" tf:"lacp_mode,omitempty"`

	// Allow a port in this port group to be
	// moved to another port group while it is connected.
	// Allow a live port to be moved in and out of the portgroup.
	// +kubebuilder:validation:Optional
	LivePortMovingAllowed *bool `json:"livePortMovingAllowed,omitempty" tf:"live_port_moving_allowed,omitempty"`

	// Indicates whether to enable netflow on all ports.
	// +kubebuilder:validation:Optional
	NetflowEnabled *bool `json:"netflowEnabled,omitempty" tf:"netflow_enabled,omitempty"`

	// Allow the
	// Netflow policy on this port group to be overridden on an
	// individual port.
	// Allow the enabling or disabling of Netflow on a port, contrary to the policy in the portgroup.
	// +kubebuilder:validation:Optional
	NetflowOverrideAllowed *bool `json:"netflowOverrideAllowed,omitempty" tf:"netflow_override_allowed,omitempty"`

	// The key of a network resource pool
	// to associate with this port group. The default is -1, which implies no
	// association.
	// The key of a network resource pool to associate with this portgroup.
	// +kubebuilder:validation:Optional
	NetworkResourcePoolKey *string `json:"networkResourcePoolKey,omitempty" tf:"network_resource_pool_key,omitempty"`

	// Allow the network
	// resource pool set on this port group to be overridden on an individual port.
	// Allow the network resource pool of an individual port to override the setting in the portgroup.
	// +kubebuilder:validation:Optional
	NetworkResourcePoolOverrideAllowed *bool `json:"networkResourcePoolOverrideAllowed,omitempty" tf:"network_resource_pool_override_allowed,omitempty"`

	// If true, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates.
	// +kubebuilder:validation:Optional
	NotifySwitches *bool `json:"notifySwitches,omitempty" tf:"notify_switches,omitempty"`

	// The number of ports available on this port
	// group. Cannot be decreased below the amount of used ports on the port group.
	// The number of ports in this portgroup. The DVS will expand and shrink by modifying this setting.
	// +kubebuilder:validation:Optional
	NumberOfPorts *float64 `json:"numberOfPorts,omitempty" tf:"number_of_ports,omitempty"`

	// Reset a port's settings to the
	// settings defined on this port group policy when the port disconnects.
	// Reset the setting of any ports in this portgroup back to the default setting when the port disconnects.
	// +kubebuilder:validation:Optional
	PortConfigResetAtDisconnect *bool `json:"portConfigResetAtDisconnect,omitempty" tf:"port_config_reset_at_disconnect,omitempty"`

	// An optional formatting policy for naming of
	// the ports in this port group. See the portNameFormat attribute listed
	// here for details on the format syntax.
	// A template string to use when creating ports in the portgroup.
	// +kubebuilder:validation:Optional
	PortNameFormat *string `json:"portNameFormat,omitempty" tf:"port_name_format,omitempty"`

	// Used to define a secondary VLAN
	// ID when using private VLANs.
	// The secondary VLAN ID for this port.
	// +kubebuilder:validation:Optional
	PortPrivateSecondaryVlanID *float64 `json:"portPrivateSecondaryVlanId,omitempty" tf:"port_private_secondary_vlan_id,omitempty"`

	// Allow the
	// security policy settings defined in this port group
	// policy to be overridden on an individual port.
	// Allow security policy settings on a port to override those on the portgroup.
	// +kubebuilder:validation:Optional
	SecurityPolicyOverrideAllowed *bool `json:"securityPolicyOverrideAllowed,omitempty" tf:"security_policy_override_allowed,omitempty"`

	// Allow the
	// traffic shaping options on this port group policy
	// to be overridden on an individual port.
	// Allow the traffic shaping policies of an individual port to override the settings in the portgroup.
	// +kubebuilder:validation:Optional
	ShapingOverrideAllowed *bool `json:"shapingOverrideAllowed,omitempty" tf:"shaping_override_allowed,omitempty"`

	// List of standby uplinks used for load balancing, matching the names of the uplinks assigned in the DVS.
	// +kubebuilder:validation:Optional
	StandbyUplinks []*string `json:"standbyUplinks,omitempty" tf:"standby_uplinks,omitempty"`

	// A list of tag IDs to apply to this object.
	// +kubebuilder:validation:Optional
	Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"`

	// The network adapter teaming policy. Can be one of loadbalance_ip, loadbalance_srcmac, loadbalance_srcid, failover_explicit, or loadbalance_loadbased.
	// +kubebuilder:validation:Optional
	TeamingPolicy *string `json:"teamingPolicy,omitempty" tf:"teaming_policy,omitempty"`

	// Allow any traffic filters on
	// this port group to be overridden on an individual port.
	// Allow any filter policies set on the individual port to override those in the portgroup.
	// +kubebuilder:validation:Optional
	TrafficFilterOverrideAllowed *bool `json:"trafficFilterOverrideAllowed,omitempty" tf:"traffic_filter_override_allowed,omitempty"`

	// If true, a copy of packets sent to the switch will always be forwarded to an uplink in addition to the regular packet forwarded done by the switch.
	// +kubebuilder:validation:Optional
	TxUplink *bool `json:"txUplink,omitempty" tf:"tx_uplink,omitempty"`

	// The port group type. Can be one of earlyBinding (static
	// binding) or ephemeral. Default: earlyBinding.
	// The type of portgroup. Can be one of earlyBinding (static) or ephemeral.
	// +kubebuilder:validation:Optional
	Type *string `json:"type,omitempty" tf:"type,omitempty"`

	// Allow the
	// uplink teaming options on this port group to be
	// overridden on an individual port.
	// Allow the uplink teaming policies on a port to override those on the portgroup.
	// +kubebuilder:validation:Optional
	UplinkTeamingOverrideAllowed *bool `json:"uplinkTeamingOverrideAllowed,omitempty" tf:"uplink_teaming_override_allowed,omitempty"`

	// The member VLAN for the ports this policy applies to. A
	// value of 0 means no VLAN.
	// The VLAN ID for single VLAN mode. 0 denotes no VLAN.
	// +kubebuilder:validation:Optional
	VlanID *float64 `json:"vlanId,omitempty" tf:"vlan_id,omitempty"`

	// Allow the
	// VLAN settings on this port group to be overridden on an
	// individual port.
	// Allow the VLAN configuration on a port to override those on the portgroup.
	// +kubebuilder:validation:Optional
	VlanOverrideAllowed *bool `json:"vlanOverrideAllowed,omitempty" tf:"vlan_override_allowed,omitempty"`

	// Used to denote VLAN trunking. Use the min_vlan
	// and max_vlan sub-arguments to define the tagged VLAN range. Multiple
	// vlan_range definitions are allowed, but they must not overlap. Example
	// below:
	// The VLAN ID for single VLAN mode. 0 denotes no VLAN.
	// +kubebuilder:validation:Optional
	VlanRange []VlanRangeParameters `json:"vlanRange,omitempty" tf:"vlan_range,omitempty"`
}

func (*PortGroupParameters) DeepCopy

func (in *PortGroupParameters) DeepCopy() *PortGroupParameters

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortGroupParameters.

func (*PortGroupParameters) DeepCopyInto

func (in *PortGroupParameters) DeepCopyInto(out *PortGroupParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PortGroupSpec

type PortGroupSpec struct {
	v1.ResourceSpec `json:",inline"`
	ForProvider     PortGroupParameters `json:"forProvider"`
}

PortGroupSpec defines the desired state of PortGroup

func (*PortGroupSpec) DeepCopy

func (in *PortGroupSpec) DeepCopy() *PortGroupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortGroupSpec.

func (*PortGroupSpec) DeepCopyInto

func (in *PortGroupSpec) DeepCopyInto(out *PortGroupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type PortGroupStatus

type PortGroupStatus struct {
	v1.ResourceStatus `json:",inline"`
	AtProvider        PortGroupObservation `json:"atProvider,omitempty"`
}

PortGroupStatus defines the observed state of PortGroup.

func (*PortGroupStatus) DeepCopy

func (in *PortGroupStatus) DeepCopy() *PortGroupStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortGroupStatus.

func (*PortGroupStatus) DeepCopyInto

func (in *PortGroupStatus) DeepCopyInto(out *PortGroupStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VlanRangeObservation

type VlanRangeObservation struct {
}

func (*VlanRangeObservation) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VlanRangeObservation.

func (*VlanRangeObservation) DeepCopyInto

func (in *VlanRangeObservation) DeepCopyInto(out *VlanRangeObservation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type VlanRangeParameters

type VlanRangeParameters struct {

	// The minimum VLAN to use in the range.
	// +kubebuilder:validation:Required
	MaxVlan *float64 `json:"maxVlan" tf:"max_vlan,omitempty"`

	// The minimum VLAN to use in the range.
	// +kubebuilder:validation:Required
	MinVlan *float64 `json:"minVlan" tf:"min_vlan,omitempty"`
}

func (*VlanRangeParameters) DeepCopy

func (in *VlanRangeParameters) DeepCopy() *VlanRangeParameters

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VlanRangeParameters.

func (*VlanRangeParameters) DeepCopyInto

func (in *VlanRangeParameters) DeepCopyInto(out *VlanRangeParameters)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Jump to

Keyboard shortcuts

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