networkerpb

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Mar 10, 2026 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NetworkerPlugin_GetSupportedPortForwardTargets_FullMethodName = "/omniview.sdk.networker.v1.NetworkerPlugin/GetSupportedPortForwardTargets"
	NetworkerPlugin_GetPortForwardSession_FullMethodName          = "/omniview.sdk.networker.v1.NetworkerPlugin/GetPortForwardSession"
	NetworkerPlugin_ListPortForwardSessions_FullMethodName        = "/omniview.sdk.networker.v1.NetworkerPlugin/ListPortForwardSessions"
	NetworkerPlugin_FindPortForwardSessions_FullMethodName        = "/omniview.sdk.networker.v1.NetworkerPlugin/FindPortForwardSessions"
	NetworkerPlugin_StartPortForwardSession_FullMethodName        = "/omniview.sdk.networker.v1.NetworkerPlugin/StartPortForwardSession"
	NetworkerPlugin_ClosePortForwardSession_FullMethodName        = "/omniview.sdk.networker.v1.NetworkerPlugin/ClosePortForwardSession"
)

Variables

View Source
var (
	PortForwardProtocol_name = map[int32]string{
		0: "PORT_FORWARD_PROTOCOL_TCP",
		1: "PORT_FORWARD_PROTOCOL_UDP",
	}
	PortForwardProtocol_value = map[string]int32{
		"PORT_FORWARD_PROTOCOL_TCP": 0,
		"PORT_FORWARD_PROTOCOL_UDP": 1,
	}
)

Enum value maps for PortForwardProtocol.

View Source
var (
	PortForwardSession_SessionState_name = map[int32]string{
		0: "ACTIVE",
		1: "PAUSED",
		2: "STOPPED",
		3: "FAILED",
	}
	PortForwardSession_SessionState_value = map[string]int32{
		"ACTIVE":  0,
		"PAUSED":  1,
		"STOPPED": 2,
		"FAILED":  3,
	}
)

Enum value maps for PortForwardSession_SessionState.

View Source
var File_proto_v1_networker_networker_proto protoreflect.FileDescriptor
View Source
var NetworkerPlugin_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "omniview.sdk.networker.v1.NetworkerPlugin",
	HandlerType: (*NetworkerPluginServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetSupportedPortForwardTargets",
			Handler:    _NetworkerPlugin_GetSupportedPortForwardTargets_Handler,
		},
		{
			MethodName: "GetPortForwardSession",
			Handler:    _NetworkerPlugin_GetPortForwardSession_Handler,
		},
		{
			MethodName: "ListPortForwardSessions",
			Handler:    _NetworkerPlugin_ListPortForwardSessions_Handler,
		},
		{
			MethodName: "FindPortForwardSessions",
			Handler:    _NetworkerPlugin_FindPortForwardSessions_Handler,
		},
		{
			MethodName: "StartPortForwardSession",
			Handler:    _NetworkerPlugin_StartPortForwardSession_Handler,
		},
		{
			MethodName: "ClosePortForwardSession",
			Handler:    _NetworkerPlugin_ClosePortForwardSession_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "proto/v1/networker/networker.proto",
}

NetworkerPlugin_ServiceDesc is the grpc.ServiceDesc for NetworkerPlugin service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterNetworkerPluginServer

func RegisterNetworkerPluginServer(s grpc.ServiceRegistrar, srv NetworkerPluginServer)

Types

type FindPortForwardSessionRequest

type FindPortForwardSessionRequest struct {
	ResourceId   string `protobuf:"bytes,1,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"`
	ConnectionId string `protobuf:"bytes,2,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
	// contains filtered or unexported fields
}

func (*FindPortForwardSessionRequest) Descriptor deprecated

func (*FindPortForwardSessionRequest) Descriptor() ([]byte, []int)

Deprecated: Use FindPortForwardSessionRequest.ProtoReflect.Descriptor instead.

func (*FindPortForwardSessionRequest) GetConnectionId

func (x *FindPortForwardSessionRequest) GetConnectionId() string

func (*FindPortForwardSessionRequest) GetResourceId

func (x *FindPortForwardSessionRequest) GetResourceId() string

func (*FindPortForwardSessionRequest) ProtoMessage

func (*FindPortForwardSessionRequest) ProtoMessage()

func (*FindPortForwardSessionRequest) ProtoReflect

func (*FindPortForwardSessionRequest) Reset

func (x *FindPortForwardSessionRequest) Reset()

func (*FindPortForwardSessionRequest) String

type GetSupportedPortForwardTargetsResponse

type GetSupportedPortForwardTargetsResponse struct {
	Resources []string `protobuf:"bytes,1,rep,name=resources,proto3" json:"resources,omitempty"`
	// contains filtered or unexported fields
}

func (*GetSupportedPortForwardTargetsResponse) Descriptor deprecated

func (*GetSupportedPortForwardTargetsResponse) Descriptor() ([]byte, []int)

Deprecated: Use GetSupportedPortForwardTargetsResponse.ProtoReflect.Descriptor instead.

func (*GetSupportedPortForwardTargetsResponse) GetResources

func (x *GetSupportedPortForwardTargetsResponse) GetResources() []string

func (*GetSupportedPortForwardTargetsResponse) ProtoMessage

func (*GetSupportedPortForwardTargetsResponse) ProtoReflect

func (*GetSupportedPortForwardTargetsResponse) Reset

func (*GetSupportedPortForwardTargetsResponse) String

type NetworkerPluginClient

type NetworkerPluginClient interface {
	// Resource Forwarding Management
	GetSupportedPortForwardTargets(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetSupportedPortForwardTargetsResponse, error)
	GetPortForwardSession(ctx context.Context, in *PortForwardSessionByIdRequest, opts ...grpc.CallOption) (*PortForwardSessionByIdResponse, error)
	ListPortForwardSessions(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*PortForwardSessionListResponse, error)
	FindPortForwardSessions(ctx context.Context, in *FindPortForwardSessionRequest, opts ...grpc.CallOption) (*PortForwardSessionListResponse, error)
	StartPortForwardSession(ctx context.Context, in *PortForwardSessionOptions, opts ...grpc.CallOption) (*PortForwardSessionByIdResponse, error)
	ClosePortForwardSession(ctx context.Context, in *PortForwardSessionByIdRequest, opts ...grpc.CallOption) (*PortForwardSessionByIdResponse, error)
}

NetworkerPluginClient is the client API for NetworkerPlugin service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type NetworkerPluginServer

type NetworkerPluginServer interface {
	// Resource Forwarding Management
	GetSupportedPortForwardTargets(context.Context, *emptypb.Empty) (*GetSupportedPortForwardTargetsResponse, error)
	GetPortForwardSession(context.Context, *PortForwardSessionByIdRequest) (*PortForwardSessionByIdResponse, error)
	ListPortForwardSessions(context.Context, *emptypb.Empty) (*PortForwardSessionListResponse, error)
	FindPortForwardSessions(context.Context, *FindPortForwardSessionRequest) (*PortForwardSessionListResponse, error)
	StartPortForwardSession(context.Context, *PortForwardSessionOptions) (*PortForwardSessionByIdResponse, error)
	ClosePortForwardSession(context.Context, *PortForwardSessionByIdRequest) (*PortForwardSessionByIdResponse, error)
}

NetworkerPluginServer is the server API for NetworkerPlugin service. All implementations should embed UnimplementedNetworkerPluginServer for forward compatibility

type PortForwardProtocol

type PortForwardProtocol int32
const (
	PortForwardProtocol_PORT_FORWARD_PROTOCOL_TCP PortForwardProtocol = 0
	PortForwardProtocol_PORT_FORWARD_PROTOCOL_UDP PortForwardProtocol = 1
)

func (PortForwardProtocol) Descriptor

func (PortForwardProtocol) Enum

func (PortForwardProtocol) EnumDescriptor deprecated

func (PortForwardProtocol) EnumDescriptor() ([]byte, []int)

Deprecated: Use PortForwardProtocol.Descriptor instead.

func (PortForwardProtocol) Number

func (PortForwardProtocol) String

func (x PortForwardProtocol) String() string

func (PortForwardProtocol) Type

type PortForwardResourceConnection

type PortForwardResourceConnection struct {
	ConnectionId string           `protobuf:"bytes,1,opt,name=connection_id,json=connectionId,proto3" json:"connection_id,omitempty"`
	PluginId     string           `protobuf:"bytes,2,opt,name=plugin_id,json=pluginId,proto3" json:"plugin_id,omitempty"`
	ResourceId   string           `protobuf:"bytes,3,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"`
	ResourceKey  string           `protobuf:"bytes,4,opt,name=resource_key,json=resourceKey,proto3" json:"resource_key,omitempty"`
	ResourceData *structpb.Struct `protobuf:"bytes,5,opt,name=resource_data,json=resourceData,proto3" json:"resource_data,omitempty"`
	// contains filtered or unexported fields
}

Port forwarding can happen to a resource via it's resource parameter, or via a static connection to a specific address and port. This message encapsulates the options for the connection to a resource.

func (*PortForwardResourceConnection) Descriptor deprecated

func (*PortForwardResourceConnection) Descriptor() ([]byte, []int)

Deprecated: Use PortForwardResourceConnection.ProtoReflect.Descriptor instead.

func (*PortForwardResourceConnection) GetConnectionId

func (x *PortForwardResourceConnection) GetConnectionId() string

func (*PortForwardResourceConnection) GetPluginId

func (x *PortForwardResourceConnection) GetPluginId() string

func (*PortForwardResourceConnection) GetResourceData

func (x *PortForwardResourceConnection) GetResourceData() *structpb.Struct

func (*PortForwardResourceConnection) GetResourceId

func (x *PortForwardResourceConnection) GetResourceId() string

func (*PortForwardResourceConnection) GetResourceKey

func (x *PortForwardResourceConnection) GetResourceKey() string

func (*PortForwardResourceConnection) ProtoMessage

func (*PortForwardResourceConnection) ProtoMessage()

func (*PortForwardResourceConnection) ProtoReflect

func (*PortForwardResourceConnection) Reset

func (x *PortForwardResourceConnection) Reset()

func (*PortForwardResourceConnection) String

type PortForwardSession

type PortForwardSession struct {
	Id         string                          `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	LocalPort  int32                           `protobuf:"varint,2,opt,name=local_port,json=localPort,proto3" json:"local_port,omitempty"`
	RemotePort int32                           `protobuf:"varint,3,opt,name=remote_port,json=remotePort,proto3" json:"remote_port,omitempty"`
	Protocol   PortForwardProtocol             `protobuf:"varint,4,opt,name=protocol,proto3,enum=omniview.sdk.networker.v1.PortForwardProtocol" json:"protocol,omitempty"`
	CreatedAt  *timestamppb.Timestamp          `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	UpdatedAt  *timestamppb.Timestamp          `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	Labels     map[string]string               `` /* 139-byte string literal not displayed */
	State      PortForwardSession_SessionState `` /* 127-byte string literal not displayed */
	Encryption *PortForwardSessionEncryption   `protobuf:"bytes,9,opt,name=encryption,proto3" json:"encryption,omitempty"`
	// Types that are valid to be assigned to Connection:
	//
	//	*PortForwardSession_ResourceConnection
	//	*PortForwardSession_StaticConnection
	Connection isPortForwardSession_Connection `protobuf_oneof:"connection"`
	// contains filtered or unexported fields
}

An active port forwarding session that is used to forward network traffic from a remote resource to the local machine. Common use cases include: - Kubernetes port forwarding - AWS SSM port forwarding - SSH port forwarding

func (*PortForwardSession) Descriptor deprecated

func (*PortForwardSession) Descriptor() ([]byte, []int)

Deprecated: Use PortForwardSession.ProtoReflect.Descriptor instead.

func (*PortForwardSession) GetConnection

func (x *PortForwardSession) GetConnection() isPortForwardSession_Connection

func (*PortForwardSession) GetCreatedAt

func (x *PortForwardSession) GetCreatedAt() *timestamppb.Timestamp

func (*PortForwardSession) GetEncryption

func (*PortForwardSession) GetId

func (x *PortForwardSession) GetId() string

func (*PortForwardSession) GetLabels

func (x *PortForwardSession) GetLabels() map[string]string

func (*PortForwardSession) GetLocalPort

func (x *PortForwardSession) GetLocalPort() int32

func (*PortForwardSession) GetProtocol

func (x *PortForwardSession) GetProtocol() PortForwardProtocol

func (*PortForwardSession) GetRemotePort

func (x *PortForwardSession) GetRemotePort() int32

func (*PortForwardSession) GetResourceConnection

func (x *PortForwardSession) GetResourceConnection() *PortForwardResourceConnection

func (*PortForwardSession) GetState

func (*PortForwardSession) GetStaticConnection

func (x *PortForwardSession) GetStaticConnection() *PortForwardStaticConnection

func (*PortForwardSession) GetUpdatedAt

func (x *PortForwardSession) GetUpdatedAt() *timestamppb.Timestamp

func (*PortForwardSession) ProtoMessage

func (*PortForwardSession) ProtoMessage()

func (*PortForwardSession) ProtoReflect

func (x *PortForwardSession) ProtoReflect() protoreflect.Message

func (*PortForwardSession) Reset

func (x *PortForwardSession) Reset()

func (*PortForwardSession) String

func (x *PortForwardSession) String() string

type PortForwardSessionByIdRequest

type PortForwardSessionByIdRequest struct {
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// contains filtered or unexported fields
}

func (*PortForwardSessionByIdRequest) Descriptor deprecated

func (*PortForwardSessionByIdRequest) Descriptor() ([]byte, []int)

Deprecated: Use PortForwardSessionByIdRequest.ProtoReflect.Descriptor instead.

func (*PortForwardSessionByIdRequest) GetId

func (*PortForwardSessionByIdRequest) ProtoMessage

func (*PortForwardSessionByIdRequest) ProtoMessage()

func (*PortForwardSessionByIdRequest) ProtoReflect

func (*PortForwardSessionByIdRequest) Reset

func (x *PortForwardSessionByIdRequest) Reset()

func (*PortForwardSessionByIdRequest) String

type PortForwardSessionByIdResponse

type PortForwardSessionByIdResponse struct {
	Session *PortForwardSession `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"`
	// contains filtered or unexported fields
}

func (*PortForwardSessionByIdResponse) Descriptor deprecated

func (*PortForwardSessionByIdResponse) Descriptor() ([]byte, []int)

Deprecated: Use PortForwardSessionByIdResponse.ProtoReflect.Descriptor instead.

func (*PortForwardSessionByIdResponse) GetSession

func (*PortForwardSessionByIdResponse) ProtoMessage

func (*PortForwardSessionByIdResponse) ProtoMessage()

func (*PortForwardSessionByIdResponse) ProtoReflect

func (*PortForwardSessionByIdResponse) Reset

func (x *PortForwardSessionByIdResponse) Reset()

func (*PortForwardSessionByIdResponse) String

type PortForwardSessionEncryption

type PortForwardSessionEncryption struct {
	Enabled   bool   `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	Algorithm string `protobuf:"bytes,2,opt,name=algorithm,proto3" json:"algorithm,omitempty"`
	Key       string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
	// contains filtered or unexported fields
}

func (*PortForwardSessionEncryption) Descriptor deprecated

func (*PortForwardSessionEncryption) Descriptor() ([]byte, []int)

Deprecated: Use PortForwardSessionEncryption.ProtoReflect.Descriptor instead.

func (*PortForwardSessionEncryption) GetAlgorithm

func (x *PortForwardSessionEncryption) GetAlgorithm() string

func (*PortForwardSessionEncryption) GetEnabled

func (x *PortForwardSessionEncryption) GetEnabled() bool

func (*PortForwardSessionEncryption) GetKey

func (*PortForwardSessionEncryption) ProtoMessage

func (*PortForwardSessionEncryption) ProtoMessage()

func (*PortForwardSessionEncryption) ProtoReflect

func (*PortForwardSessionEncryption) Reset

func (x *PortForwardSessionEncryption) Reset()

func (*PortForwardSessionEncryption) String

type PortForwardSessionListResponse

type PortForwardSessionListResponse struct {
	Sessions []*PortForwardSession `protobuf:"bytes,1,rep,name=sessions,proto3" json:"sessions,omitempty"`
	// contains filtered or unexported fields
}

func (*PortForwardSessionListResponse) Descriptor deprecated

func (*PortForwardSessionListResponse) Descriptor() ([]byte, []int)

Deprecated: Use PortForwardSessionListResponse.ProtoReflect.Descriptor instead.

func (*PortForwardSessionListResponse) GetSessions

func (*PortForwardSessionListResponse) ProtoMessage

func (*PortForwardSessionListResponse) ProtoMessage()

func (*PortForwardSessionListResponse) ProtoReflect

func (*PortForwardSessionListResponse) Reset

func (x *PortForwardSessionListResponse) Reset()

func (*PortForwardSessionListResponse) String

type PortForwardSessionOptions

type PortForwardSessionOptions struct {
	LocalPort  int32                         `protobuf:"varint,1,opt,name=local_port,json=localPort,proto3" json:"local_port,omitempty"`
	RemotePort int32                         `protobuf:"varint,2,opt,name=remote_port,json=remotePort,proto3" json:"remote_port,omitempty"`
	Protocol   PortForwardProtocol           `protobuf:"varint,3,opt,name=protocol,proto3,enum=omniview.sdk.networker.v1.PortForwardProtocol" json:"protocol,omitempty"`
	Labels     map[string]string             `` /* 139-byte string literal not displayed */
	Params     map[string]string             `` /* 139-byte string literal not displayed */
	Encryption *PortForwardSessionEncryption `protobuf:"bytes,6,opt,name=encryption,proto3" json:"encryption,omitempty"`
	// Types that are valid to be assigned to Connection:
	//
	//	*PortForwardSessionOptions_ResourceConnection
	//	*PortForwardSessionOptions_StaticConnection
	Connection isPortForwardSessionOptions_Connection `protobuf_oneof:"connection"`
	// contains filtered or unexported fields
}

Options for creating a new port forwarding session

func (*PortForwardSessionOptions) Descriptor deprecated

func (*PortForwardSessionOptions) Descriptor() ([]byte, []int)

Deprecated: Use PortForwardSessionOptions.ProtoReflect.Descriptor instead.

func (*PortForwardSessionOptions) GetConnection

func (x *PortForwardSessionOptions) GetConnection() isPortForwardSessionOptions_Connection

func (*PortForwardSessionOptions) GetEncryption

func (*PortForwardSessionOptions) GetLabels

func (x *PortForwardSessionOptions) GetLabels() map[string]string

func (*PortForwardSessionOptions) GetLocalPort

func (x *PortForwardSessionOptions) GetLocalPort() int32

func (*PortForwardSessionOptions) GetParams

func (x *PortForwardSessionOptions) GetParams() map[string]string

func (*PortForwardSessionOptions) GetProtocol

func (*PortForwardSessionOptions) GetRemotePort

func (x *PortForwardSessionOptions) GetRemotePort() int32

func (*PortForwardSessionOptions) GetResourceConnection

func (x *PortForwardSessionOptions) GetResourceConnection() *PortForwardResourceConnection

func (*PortForwardSessionOptions) GetStaticConnection

func (x *PortForwardSessionOptions) GetStaticConnection() *PortForwardStaticConnection

func (*PortForwardSessionOptions) ProtoMessage

func (*PortForwardSessionOptions) ProtoMessage()

func (*PortForwardSessionOptions) ProtoReflect

func (*PortForwardSessionOptions) Reset

func (x *PortForwardSessionOptions) Reset()

func (*PortForwardSessionOptions) String

func (x *PortForwardSessionOptions) String() string

type PortForwardSessionOptions_ResourceConnection

type PortForwardSessionOptions_ResourceConnection struct {
	ResourceConnection *PortForwardResourceConnection `protobuf:"bytes,10,opt,name=resource_connection,json=resourceConnection,proto3,oneof"`
}

type PortForwardSessionOptions_StaticConnection

type PortForwardSessionOptions_StaticConnection struct {
	StaticConnection *PortForwardStaticConnection `protobuf:"bytes,11,opt,name=static_connection,json=staticConnection,proto3,oneof"`
}

type PortForwardSession_ResourceConnection

type PortForwardSession_ResourceConnection struct {
	ResourceConnection *PortForwardResourceConnection `protobuf:"bytes,20,opt,name=resource_connection,json=resourceConnection,proto3,oneof"`
}

type PortForwardSession_SessionState

type PortForwardSession_SessionState int32
const (
	PortForwardSession_ACTIVE  PortForwardSession_SessionState = 0
	PortForwardSession_PAUSED  PortForwardSession_SessionState = 1
	PortForwardSession_STOPPED PortForwardSession_SessionState = 2
	PortForwardSession_FAILED  PortForwardSession_SessionState = 3
)

func (PortForwardSession_SessionState) Descriptor

func (PortForwardSession_SessionState) Enum

func (PortForwardSession_SessionState) EnumDescriptor deprecated

func (PortForwardSession_SessionState) EnumDescriptor() ([]byte, []int)

Deprecated: Use PortForwardSession_SessionState.Descriptor instead.

func (PortForwardSession_SessionState) Number

func (PortForwardSession_SessionState) String

func (PortForwardSession_SessionState) Type

type PortForwardSession_StaticConnection

type PortForwardSession_StaticConnection struct {
	StaticConnection *PortForwardStaticConnection `protobuf:"bytes,21,opt,name=static_connection,json=staticConnection,proto3,oneof"`
}

type PortForwardStaticConnection

type PortForwardStaticConnection struct {

	// IPv4 or IPv6 address
	Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
	// contains filtered or unexported fields
}

func (*PortForwardStaticConnection) Descriptor deprecated

func (*PortForwardStaticConnection) Descriptor() ([]byte, []int)

Deprecated: Use PortForwardStaticConnection.ProtoReflect.Descriptor instead.

func (*PortForwardStaticConnection) GetAddress

func (x *PortForwardStaticConnection) GetAddress() string

func (*PortForwardStaticConnection) ProtoMessage

func (*PortForwardStaticConnection) ProtoMessage()

func (*PortForwardStaticConnection) ProtoReflect

func (*PortForwardStaticConnection) Reset

func (x *PortForwardStaticConnection) Reset()

func (*PortForwardStaticConnection) String

func (x *PortForwardStaticConnection) String() string

type UnimplementedNetworkerPluginServer

type UnimplementedNetworkerPluginServer struct {
}

UnimplementedNetworkerPluginServer should be embedded to have forward compatible implementations.

func (UnimplementedNetworkerPluginServer) GetSupportedPortForwardTargets

func (UnimplementedNetworkerPluginServer) ListPortForwardSessions

func (UnimplementedNetworkerPluginServer) StartPortForwardSession

type UnsafeNetworkerPluginServer

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

UnsafeNetworkerPluginServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to NetworkerPluginServer will result in compilation errors.

Jump to

Keyboard shortcuts

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