v1alpha1

package
v0.0.0-...-601b275 Latest Latest
Warning

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

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

Documentation

Overview

+k8s:deepcopy-gen=package +groupName=networking.arangodb.com

Index

Constants

View Source
const (
	ReadyCondition            api.ConditionType = "Ready"
	DeploymentFoundCondition  api.ConditionType = "DeploymentFound"
	DestinationValidCondition api.ConditionType = "DestinationValid"
	SpecValidCondition        api.ConditionType = "SpecValid"
)
View Source
const (
	ArangoNetworkingVersion = "v1alpha1"
)

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme

	SchemeGroupVersion = schema.GroupVersion{Group: networking.ArangoNetworkingGroupName, Version: ArangoNetworkingVersion}
)

Functions

func Resource

func Resource(resource string) schema.GroupResource

Resource gets an ArangoCluster GroupResource for a specified resource

Types

type ArangoRoute

type ArangoRoute struct {
	meta.TypeMeta   `json:",inline"`
	meta.ObjectMeta `json:"metadata,omitempty"`

	Spec   ArangoRouteSpec   `json:"spec"`
	Status ArangoRouteStatus `json:"status"`
}

ArangoRoute contains definition and status of the Arango Route.

func (*ArangoRoute) AsOwner

func (a *ArangoRoute) AsOwner() meta.OwnerReference

AsOwner creates an OwnerReference for the given Extension

func (*ArangoRoute) DeepCopy

func (in *ArangoRoute) DeepCopy() *ArangoRoute

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

func (*ArangoRoute) DeepCopyInto

func (in *ArangoRoute) DeepCopyInto(out *ArangoRoute)

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

func (*ArangoRoute) DeepCopyObject

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

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

func (*ArangoRoute) GetStatus

func (a *ArangoRoute) GetStatus() ArangoRouteStatus

func (*ArangoRoute) SetStatus

func (a *ArangoRoute) SetStatus(status ArangoRouteStatus)

type ArangoRouteDestinationProtocol

type ArangoRouteDestinationProtocol string
const (
	ArangoRouteDestinationProtocolHTTP1   ArangoRouteDestinationProtocol = "http1"
	ArangoRouteDestinationProtocolHTTP2   ArangoRouteDestinationProtocol = "http2"
	ArangoRouteDestinationProtocolDefault                                = ArangoRouteDestinationProtocolHTTP1
)

func (*ArangoRouteDestinationProtocol) Get

func (*ArangoRouteDestinationProtocol) String

func (*ArangoRouteDestinationProtocol) Validate

func (a *ArangoRouteDestinationProtocol) Validate() error

type ArangoRouteList

type ArangoRouteList struct {
	meta.TypeMeta `json:",inline"`
	meta.ListMeta `json:"metadata,omitempty"`

	Items []ArangoRoute `json:"items"`
}

ArangoRouteList is a list of Arango Routes.

func (*ArangoRouteList) DeepCopy

func (in *ArangoRouteList) DeepCopy() *ArangoRouteList

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

func (*ArangoRouteList) DeepCopyInto

func (in *ArangoRouteList) DeepCopyInto(out *ArangoRouteList)

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

func (*ArangoRouteList) DeepCopyObject

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

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

type ArangoRouteSpec

type ArangoRouteSpec struct {
	// Deployment specifies the ArangoDeployment object name
	Deployment *string `json:"deployment,omitempty"`

	// Destination defines the route destination
	Destination *ArangoRouteSpecDestination `json:"destination,omitempty"`

	// Route defines the route spec
	Route *ArangoRouteSpecRoute `json:"route,omitempty"`

	// Options defines connection upgrade options
	Options *ArangoRouteSpecOptions `json:"options,omitempty"`
}

func (*ArangoRouteSpec) DeepCopy

func (in *ArangoRouteSpec) DeepCopy() *ArangoRouteSpec

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

func (*ArangoRouteSpec) DeepCopyInto

func (in *ArangoRouteSpec) DeepCopyInto(out *ArangoRouteSpec)

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

func (*ArangoRouteSpec) GetDeployment

func (s *ArangoRouteSpec) GetDeployment() string

func (*ArangoRouteSpec) GetDestination

func (s *ArangoRouteSpec) GetDestination() *ArangoRouteSpecDestination

func (*ArangoRouteSpec) GetRoute

func (s *ArangoRouteSpec) GetRoute() *ArangoRouteSpecRoute

func (*ArangoRouteSpec) Validate

func (s *ArangoRouteSpec) Validate() error

type ArangoRouteSpecAuthenticationPassMode

type ArangoRouteSpecAuthenticationPassMode string
const (
	ArangoRouteSpecAuthenticationPassModePass     ArangoRouteSpecAuthenticationPassMode = "pass"
	ArangoRouteSpecAuthenticationPassModeOverride ArangoRouteSpecAuthenticationPassMode = "override"
	ArangoRouteSpecAuthenticationPassModeRemove   ArangoRouteSpecAuthenticationPassMode = "remove"
)

func (*ArangoRouteSpecAuthenticationPassMode) Get

func (*ArangoRouteSpecAuthenticationPassMode) Hash

func (*ArangoRouteSpecAuthenticationPassMode) Validate

type ArangoRouteSpecAuthenticationType

type ArangoRouteSpecAuthenticationType string
const (
	ArangoRouteSpecAuthenticationTypeRequired ArangoRouteSpecAuthenticationType = "required"
	ArangoRouteSpecAuthenticationTypeOptional ArangoRouteSpecAuthenticationType = "optional"
)

func (*ArangoRouteSpecAuthenticationType) Get

func (*ArangoRouteSpecAuthenticationType) Hash

func (*ArangoRouteSpecAuthenticationType) Validate

type ArangoRouteSpecDestination

type ArangoRouteSpecDestination struct {
	// Service defines service upstream reference
	Service *ArangoRouteSpecDestinationService `json:"service,omitempty"`

	// Endpoints defines service upstream reference - which is used to find endpoints
	Endpoints *ArangoRouteSpecDestinationEndpoints `json:"endpoints,omitempty"`

	// Schema defines HTTP/S schema used for connection
	// +doc/enum: http|HTTP Connection
	// +doc/enum: https|HTTPS Connection (HTTP with TLS)
	Schema *ArangoRouteSpecDestinationSchema `json:"schema,omitempty"`

	// Protocol defines http protocol used for the route
	// +doc/enum: http1|HTTP 1.1 Protocol
	// +doc/enum: http2|HTTP 2 Protocol
	Protocol *ArangoRouteDestinationProtocol `json:"protocol,omitempty"`

	// TLS defines TLS Configuration
	TLS *ArangoRouteSpecDestinationTLS `json:"tls,omitempty"`

	// Path defines service path used for overrides
	Path *string `json:"path,omitempty"`

	// Authentication defines auth methods
	Authentication *ArangoRouteSpecDestinationAuthentication `json:"authentication,omitempty"`

	// Timeout specify the upstream request timeout
	// +doc/type: string
	// +doc/default: 1m0s
	Timeout *meta.Duration `json:"timeout,omitempty"`
}

func (*ArangoRouteSpecDestination) DeepCopy

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

func (*ArangoRouteSpecDestination) DeepCopyInto

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

func (*ArangoRouteSpecDestination) GetAuthentication

func (*ArangoRouteSpecDestination) GetEndpoints

func (*ArangoRouteSpecDestination) GetPath

func (a *ArangoRouteSpecDestination) GetPath() string

func (*ArangoRouteSpecDestination) GetProtocol

func (*ArangoRouteSpecDestination) GetSchema

func (*ArangoRouteSpecDestination) GetService

func (*ArangoRouteSpecDestination) GetTLS

func (*ArangoRouteSpecDestination) GetTimeout

func (a *ArangoRouteSpecDestination) GetTimeout() meta.Duration

func (*ArangoRouteSpecDestination) Validate

func (a *ArangoRouteSpecDestination) Validate() error

type ArangoRouteSpecDestinationAuthentication

type ArangoRouteSpecDestinationAuthentication struct {
	// PassMode define authorization details pass mode when authorization was successful
	// +doc/enum: override|Generates new token for the user
	// +doc/enum: pass|Pass token provided by the user
	// +doc/enum: remove|Removes authorization details from the request
	PassMode *ArangoRouteSpecAuthenticationPassMode `json:"passMode,omitempty"`

	// Type of the authentication
	// +doc/enum: optional|Authentication is header is validated and passed to the service. In case if is unauthorized, requests is still passed
	// +doc/enum: required|Authentication is header is validated and passed to the service. In case if is unauthorized, returns 403
	Type *ArangoRouteSpecAuthenticationType `json:"type,omitempty"`
}

func (*ArangoRouteSpecDestinationAuthentication) DeepCopy

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

func (*ArangoRouteSpecDestinationAuthentication) DeepCopyInto

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

func (*ArangoRouteSpecDestinationAuthentication) GetPassMode

func (*ArangoRouteSpecDestinationAuthentication) GetType

func (*ArangoRouteSpecDestinationAuthentication) Validate

type ArangoRouteSpecDestinationEndpoints

type ArangoRouteSpecDestinationEndpoints struct {
	// Keeps information on the service, which maps then to the endpoints
	*sharedApi.Object `json:",inline,omitempty"`

	// Port defines Port or Port Name used as destination
	// +doc/type: intstr.IntOrString
	Port *intstr.IntOrString `json:"port,omitempty"`
}

func (*ArangoRouteSpecDestinationEndpoints) DeepCopy

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

func (*ArangoRouteSpecDestinationEndpoints) DeepCopyInto

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

func (*ArangoRouteSpecDestinationEndpoints) GetPort

func (*ArangoRouteSpecDestinationEndpoints) Validate

type ArangoRouteSpecDestinationSchema

type ArangoRouteSpecDestinationSchema string
const (
	ArangoRouteSpecDestinationSchemaHTTP    ArangoRouteSpecDestinationSchema = "http"
	ArangoRouteSpecDestinationSchemaHTTPS   ArangoRouteSpecDestinationSchema = "https"
	ArangoRouteSpecDestinationSchemaDefault                                  = ArangoRouteSpecDestinationSchemaHTTP
)

func (*ArangoRouteSpecDestinationSchema) Get

func (*ArangoRouteSpecDestinationSchema) String

func (*ArangoRouteSpecDestinationSchema) Validate

type ArangoRouteSpecDestinationService

type ArangoRouteSpecDestinationService struct {
	*sharedApi.Object `json:",inline,omitempty"`

	// Port defines Port or Port Name used as destination
	// +doc/type: intstr.IntOrString
	Port *intstr.IntOrString `json:"port,omitempty"`
}

func (*ArangoRouteSpecDestinationService) DeepCopy

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

func (*ArangoRouteSpecDestinationService) DeepCopyInto

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

func (*ArangoRouteSpecDestinationService) GetPort

func (*ArangoRouteSpecDestinationService) Validate

type ArangoRouteSpecDestinationTLS

type ArangoRouteSpecDestinationTLS struct {
	// Insecure allows Insecure traffic
	Insecure *bool `json:"insecure,omitempty"`
}

func (*ArangoRouteSpecDestinationTLS) DeepCopy

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

func (*ArangoRouteSpecDestinationTLS) DeepCopyInto

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

func (*ArangoRouteSpecDestinationTLS) GetInsecure

func (a *ArangoRouteSpecDestinationTLS) GetInsecure() bool

func (*ArangoRouteSpecDestinationTLS) Validate

func (a *ArangoRouteSpecDestinationTLS) Validate() error

type ArangoRouteSpecOptionUpgrade

type ArangoRouteSpecOptionUpgrade struct {
	// Type defines type of the Upgrade
	// +doc/enum: websocket|HTTP WebSocket Upgrade type
	Type ArangoRouteUpgradeOptionType `json:"type"`

	// Enabled defines if upgrade option is enabled
	Enabled *bool `json:"enabled,omitempty"`
}

func (*ArangoRouteSpecOptionUpgrade) DeepCopy

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

func (*ArangoRouteSpecOptionUpgrade) DeepCopyInto

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

func (ArangoRouteSpecOptionUpgrade) Validate

func (a ArangoRouteSpecOptionUpgrade) Validate() error

type ArangoRouteSpecOptions

type ArangoRouteSpecOptions struct {
	// Upgrade keeps the connection upgrade options
	Upgrade ArangoRouteSpecOptionsUpgrade `json:"upgrade,omitempty"`
}

func (*ArangoRouteSpecOptions) AsStatus

func (*ArangoRouteSpecOptions) DeepCopy

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

func (*ArangoRouteSpecOptions) DeepCopyInto

func (in *ArangoRouteSpecOptions) DeepCopyInto(out *ArangoRouteSpecOptions)

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

func (*ArangoRouteSpecOptions) Validate

func (a *ArangoRouteSpecOptions) Validate() error

type ArangoRouteSpecOptionsUpgrade

type ArangoRouteSpecOptionsUpgrade []ArangoRouteSpecOptionUpgrade

func (ArangoRouteSpecOptionsUpgrade) DeepCopy

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

func (ArangoRouteSpecOptionsUpgrade) DeepCopyInto

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

func (ArangoRouteSpecOptionsUpgrade) Validate

func (a ArangoRouteSpecOptionsUpgrade) Validate() error

type ArangoRouteSpecRoute

type ArangoRouteSpecRoute struct {
	// Path specifies the Path route
	Path *string `json:"path,omitempty"`
}

func (*ArangoRouteSpecRoute) DeepCopy

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

func (*ArangoRouteSpecRoute) DeepCopyInto

func (in *ArangoRouteSpecRoute) DeepCopyInto(out *ArangoRouteSpecRoute)

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

func (*ArangoRouteSpecRoute) GetPath

func (a *ArangoRouteSpecRoute) GetPath() string

func (*ArangoRouteSpecRoute) Validate

func (a *ArangoRouteSpecRoute) Validate() error

type ArangoRouteStatus

type ArangoRouteStatus struct {
	// Conditions specific to the entire extension
	// +doc/type: api.Conditions
	Conditions api.ConditionList `json:"conditions,omitempty"`

	// Deployment keeps the ArangoDeployment reference
	Deployment *sharedApi.Object `json:"deployment,omitempty"`

	// Target keeps the target details
	Target *ArangoRouteStatusTarget `json:"target,omitempty"`
}

func (*ArangoRouteStatus) DeepCopy

func (in *ArangoRouteStatus) DeepCopy() *ArangoRouteStatus

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

func (*ArangoRouteStatus) DeepCopyInto

func (in *ArangoRouteStatus) DeepCopyInto(out *ArangoRouteStatus)

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

type ArangoRouteStatusTarget

type ArangoRouteStatusTarget struct {
	// Destinations keeps target destinations
	Destinations ArangoRouteStatusTargetDestinations `json:"destinations,omitempty"`

	// Type define destination type
	Type ArangoRouteStatusTargetType `json:"type,omitempty"`

	// TLS Keeps target TLS Settings (if not nil, TLS is enabled)
	TLS *ArangoRouteStatusTargetTLS `json:"tls,omitempty"`

	// Protocol defines http protocol used for the route
	Protocol ArangoRouteDestinationProtocol `json:"protocol,omitempty"`

	// Authentication specifies the authentication details
	Authentication ArangoRouteStatusTargetAuthentication `json:"authentication,omitempty"`

	// Options defines connection upgrade options
	Options *ArangoRouteStatusTargetOptions `json:"options,omitempty"`

	// Path specifies request path override
	Path string `json:"path,omitempty"`

	// Timeout specify the upstream request timeout
	Timeout meta.Duration `json:"timeout,omitempty"`
}

func (*ArangoRouteStatusTarget) DeepCopy

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

func (*ArangoRouteStatusTarget) DeepCopyInto

func (in *ArangoRouteStatusTarget) DeepCopyInto(out *ArangoRouteStatusTarget)

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

func (*ArangoRouteStatusTarget) Hash

func (a *ArangoRouteStatusTarget) Hash() string

func (*ArangoRouteStatusTarget) RenderURLs

func (a *ArangoRouteStatusTarget) RenderURLs() []string

type ArangoRouteStatusTargetAuthentication

type ArangoRouteStatusTargetAuthentication struct {
	Type     ArangoRouteSpecAuthenticationType     `json:"type,omitempty"`
	PassMode ArangoRouteSpecAuthenticationPassMode `json:"passMode,omitempty"`
}

func (*ArangoRouteStatusTargetAuthentication) DeepCopy

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

func (*ArangoRouteStatusTargetAuthentication) DeepCopyInto

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

func (*ArangoRouteStatusTargetAuthentication) Hash

type ArangoRouteStatusTargetDestination

type ArangoRouteStatusTargetDestination struct {
	Host string `json:"host,omitempty"`
	Port int32  `json:"port,omitempty"`
}

func (*ArangoRouteStatusTargetDestination) DeepCopy

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

func (*ArangoRouteStatusTargetDestination) DeepCopyInto

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

func (*ArangoRouteStatusTargetDestination) Hash

type ArangoRouteStatusTargetDestinations

type ArangoRouteStatusTargetDestinations []ArangoRouteStatusTargetDestination

func (ArangoRouteStatusTargetDestinations) DeepCopy

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

func (ArangoRouteStatusTargetDestinations) DeepCopyInto

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

func (ArangoRouteStatusTargetDestinations) Hash

type ArangoRouteStatusTargetOptionUpgrade

type ArangoRouteStatusTargetOptionUpgrade struct {
	// Type defines type of the Upgrade
	// +doc/enum: websocket|HTTP WebSocket Upgrade type
	Type ArangoRouteUpgradeOptionType `json:"type"`

	// Enabled defines if upgrade option is enabled
	Enabled *bool `json:"enabled,omitempty"`
}

func (*ArangoRouteStatusTargetOptionUpgrade) DeepCopy

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

func (*ArangoRouteStatusTargetOptionUpgrade) DeepCopyInto

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

func (*ArangoRouteStatusTargetOptionUpgrade) Hash

type ArangoRouteStatusTargetOptions

type ArangoRouteStatusTargetOptions struct {
	// Upgrade keeps the connection upgrade options
	Upgrade ArangoRouteStatusTargetOptionsUpgrade `json:"upgrade,omitempty"`
}

func (*ArangoRouteStatusTargetOptions) DeepCopy

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

func (*ArangoRouteStatusTargetOptions) DeepCopyInto

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

func (*ArangoRouteStatusTargetOptions) Hash

type ArangoRouteStatusTargetOptionsUpgrade

type ArangoRouteStatusTargetOptionsUpgrade []ArangoRouteStatusTargetOptionUpgrade

func (ArangoRouteStatusTargetOptionsUpgrade) DeepCopy

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

func (ArangoRouteStatusTargetOptionsUpgrade) DeepCopyInto

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

func (ArangoRouteStatusTargetOptionsUpgrade) Hash

type ArangoRouteStatusTargetTLS

type ArangoRouteStatusTargetTLS struct {
	// Insecure allows Insecure traffic
	Insecure *bool `json:"insecure"`
}

func (*ArangoRouteStatusTargetTLS) DeepCopy

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

func (*ArangoRouteStatusTargetTLS) DeepCopyInto

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

func (*ArangoRouteStatusTargetTLS) Hash

func (*ArangoRouteStatusTargetTLS) IsInsecure

func (a *ArangoRouteStatusTargetTLS) IsInsecure() bool

type ArangoRouteStatusTargetType

type ArangoRouteStatusTargetType string
const (
	ArangoRouteStatusTargetServiceType   ArangoRouteStatusTargetType = "service"
	ArangoRouteStatusTargetEndpointsType ArangoRouteStatusTargetType = "endpoints"
)

func (ArangoRouteStatusTargetType) Hash

type ArangoRouteUpgradeOptionType

type ArangoRouteUpgradeOptionType string
const (
	ArangoRouteUpgradeOptionWebsocket ArangoRouteUpgradeOptionType = "websocket"
)

func (ArangoRouteUpgradeOptionType) Validate

func (a ArangoRouteUpgradeOptionType) Validate() error

Jump to

Keyboard shortcuts

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