leases

package
v1.3.10 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidLengthLeases = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowLeases   = fmt.Errorf("proto: integer overflow")
)

Functions

func RegisterLeasesServer

func RegisterLeasesServer(s *grpc.Server, srv LeasesServer)

Types

type AddResourceRequest added in v1.3.0

type AddResourceRequest struct {
	ID                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Resource             Resource `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*AddResourceRequest) Descriptor added in v1.3.0

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

func (*AddResourceRequest) Marshal added in v1.3.0

func (m *AddResourceRequest) Marshal() (dAtA []byte, err error)

func (*AddResourceRequest) MarshalTo added in v1.3.0

func (m *AddResourceRequest) MarshalTo(dAtA []byte) (int, error)

func (*AddResourceRequest) ProtoMessage added in v1.3.0

func (*AddResourceRequest) ProtoMessage()

func (*AddResourceRequest) Reset added in v1.3.0

func (m *AddResourceRequest) Reset()

func (*AddResourceRequest) Size added in v1.3.0

func (m *AddResourceRequest) Size() (n int)

func (*AddResourceRequest) String added in v1.3.0

func (this *AddResourceRequest) String() string

func (*AddResourceRequest) Unmarshal added in v1.3.0

func (m *AddResourceRequest) Unmarshal(dAtA []byte) error

func (*AddResourceRequest) XXX_DiscardUnknown added in v1.3.0

func (m *AddResourceRequest) XXX_DiscardUnknown()

func (*AddResourceRequest) XXX_Marshal added in v1.3.0

func (m *AddResourceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*AddResourceRequest) XXX_Merge added in v1.3.0

func (m *AddResourceRequest) XXX_Merge(src proto.Message)

func (*AddResourceRequest) XXX_Size added in v1.3.0

func (m *AddResourceRequest) XXX_Size() int

func (*AddResourceRequest) XXX_Unmarshal added in v1.3.0

func (m *AddResourceRequest) XXX_Unmarshal(b []byte) error

type CreateRequest

type CreateRequest struct {
	// ID is used to identity the lease, when the id is not set the service
	// generates a random identifier for the lease.
	ID                   string            `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Labels               map[string]string `` /* 153-byte string literal not displayed */
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (*CreateRequest) Descriptor

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

func (*CreateRequest) Marshal

func (m *CreateRequest) Marshal() (dAtA []byte, err error)

func (*CreateRequest) MarshalTo

func (m *CreateRequest) MarshalTo(dAtA []byte) (int, error)

func (*CreateRequest) ProtoMessage

func (*CreateRequest) ProtoMessage()

func (*CreateRequest) Reset

func (m *CreateRequest) Reset()

func (*CreateRequest) Size

func (m *CreateRequest) Size() (n int)

func (*CreateRequest) String

func (this *CreateRequest) String() string

func (*CreateRequest) Unmarshal

func (m *CreateRequest) Unmarshal(dAtA []byte) error

func (*CreateRequest) XXX_DiscardUnknown added in v1.3.0

func (m *CreateRequest) XXX_DiscardUnknown()

func (*CreateRequest) XXX_Marshal added in v1.3.0

func (m *CreateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CreateRequest) XXX_Merge added in v1.3.0

func (m *CreateRequest) XXX_Merge(src proto.Message)

func (*CreateRequest) XXX_Size added in v1.3.0

func (m *CreateRequest) XXX_Size() int

func (*CreateRequest) XXX_Unmarshal added in v1.3.0

func (m *CreateRequest) XXX_Unmarshal(b []byte) error

type CreateResponse

type CreateResponse struct {
	Lease                *Lease   `protobuf:"bytes,1,opt,name=lease,proto3" json:"lease,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*CreateResponse) Descriptor

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

func (*CreateResponse) Marshal

func (m *CreateResponse) Marshal() (dAtA []byte, err error)

func (*CreateResponse) MarshalTo

func (m *CreateResponse) MarshalTo(dAtA []byte) (int, error)

func (*CreateResponse) ProtoMessage

func (*CreateResponse) ProtoMessage()

func (*CreateResponse) Reset

func (m *CreateResponse) Reset()

func (*CreateResponse) Size

func (m *CreateResponse) Size() (n int)

func (*CreateResponse) String

func (this *CreateResponse) String() string

func (*CreateResponse) Unmarshal

func (m *CreateResponse) Unmarshal(dAtA []byte) error

func (*CreateResponse) XXX_DiscardUnknown added in v1.3.0

func (m *CreateResponse) XXX_DiscardUnknown()

func (*CreateResponse) XXX_Marshal added in v1.3.0

func (m *CreateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*CreateResponse) XXX_Merge added in v1.3.0

func (m *CreateResponse) XXX_Merge(src proto.Message)

func (*CreateResponse) XXX_Size added in v1.3.0

func (m *CreateResponse) XXX_Size() int

func (*CreateResponse) XXX_Unmarshal added in v1.3.0

func (m *CreateResponse) XXX_Unmarshal(b []byte) error

type DeleteRequest

type DeleteRequest struct {
	ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Sync indicates that the delete and cleanup should be done
	// synchronously before returning to the caller
	//
	// Default is false
	Sync                 bool     `protobuf:"varint,2,opt,name=sync,proto3" json:"sync,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*DeleteRequest) Descriptor

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

func (*DeleteRequest) Marshal

func (m *DeleteRequest) Marshal() (dAtA []byte, err error)

func (*DeleteRequest) MarshalTo

func (m *DeleteRequest) MarshalTo(dAtA []byte) (int, error)

func (*DeleteRequest) ProtoMessage

func (*DeleteRequest) ProtoMessage()

func (*DeleteRequest) Reset

func (m *DeleteRequest) Reset()

func (*DeleteRequest) Size

func (m *DeleteRequest) Size() (n int)

func (*DeleteRequest) String

func (this *DeleteRequest) String() string

func (*DeleteRequest) Unmarshal

func (m *DeleteRequest) Unmarshal(dAtA []byte) error

func (*DeleteRequest) XXX_DiscardUnknown added in v1.3.0

func (m *DeleteRequest) XXX_DiscardUnknown()

func (*DeleteRequest) XXX_Marshal added in v1.3.0

func (m *DeleteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DeleteRequest) XXX_Merge added in v1.3.0

func (m *DeleteRequest) XXX_Merge(src proto.Message)

func (*DeleteRequest) XXX_Size added in v1.3.0

func (m *DeleteRequest) XXX_Size() int

func (*DeleteRequest) XXX_Unmarshal added in v1.3.0

func (m *DeleteRequest) XXX_Unmarshal(b []byte) error

type DeleteResourceRequest added in v1.3.0

type DeleteResourceRequest struct {
	ID                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Resource             Resource `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*DeleteResourceRequest) Descriptor added in v1.3.0

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

func (*DeleteResourceRequest) Marshal added in v1.3.0

func (m *DeleteResourceRequest) Marshal() (dAtA []byte, err error)

func (*DeleteResourceRequest) MarshalTo added in v1.3.0

func (m *DeleteResourceRequest) MarshalTo(dAtA []byte) (int, error)

func (*DeleteResourceRequest) ProtoMessage added in v1.3.0

func (*DeleteResourceRequest) ProtoMessage()

func (*DeleteResourceRequest) Reset added in v1.3.0

func (m *DeleteResourceRequest) Reset()

func (*DeleteResourceRequest) Size added in v1.3.0

func (m *DeleteResourceRequest) Size() (n int)

func (*DeleteResourceRequest) String added in v1.3.0

func (this *DeleteResourceRequest) String() string

func (*DeleteResourceRequest) Unmarshal added in v1.3.0

func (m *DeleteResourceRequest) Unmarshal(dAtA []byte) error

func (*DeleteResourceRequest) XXX_DiscardUnknown added in v1.3.0

func (m *DeleteResourceRequest) XXX_DiscardUnknown()

func (*DeleteResourceRequest) XXX_Marshal added in v1.3.0

func (m *DeleteResourceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*DeleteResourceRequest) XXX_Merge added in v1.3.0

func (m *DeleteResourceRequest) XXX_Merge(src proto.Message)

func (*DeleteResourceRequest) XXX_Size added in v1.3.0

func (m *DeleteResourceRequest) XXX_Size() int

func (*DeleteResourceRequest) XXX_Unmarshal added in v1.3.0

func (m *DeleteResourceRequest) XXX_Unmarshal(b []byte) error

type Lease

type Lease struct {
	ID                   string            `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	CreatedAt            time.Time         `protobuf:"bytes,2,opt,name=created_at,json=createdAt,proto3,stdtime" json:"created_at"`
	Labels               map[string]string `` /* 153-byte string literal not displayed */
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

Lease is an object which retains resources while it exists.

func (*Lease) Descriptor

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

func (*Lease) Marshal

func (m *Lease) Marshal() (dAtA []byte, err error)

func (*Lease) MarshalTo

func (m *Lease) MarshalTo(dAtA []byte) (int, error)

func (*Lease) ProtoMessage

func (*Lease) ProtoMessage()

func (*Lease) Reset

func (m *Lease) Reset()

func (*Lease) Size

func (m *Lease) Size() (n int)

func (*Lease) String

func (this *Lease) String() string

func (*Lease) Unmarshal

func (m *Lease) Unmarshal(dAtA []byte) error

func (*Lease) XXX_DiscardUnknown added in v1.3.0

func (m *Lease) XXX_DiscardUnknown()

func (*Lease) XXX_Marshal added in v1.3.0

func (m *Lease) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Lease) XXX_Merge added in v1.3.0

func (m *Lease) XXX_Merge(src proto.Message)

func (*Lease) XXX_Size added in v1.3.0

func (m *Lease) XXX_Size() int

func (*Lease) XXX_Unmarshal added in v1.3.0

func (m *Lease) XXX_Unmarshal(b []byte) error

type LeasesClient

type LeasesClient interface {
	// Create creates a new lease for managing changes to metadata. A lease
	// can be used to protect objects from being removed.
	Create(ctx context.Context, in *CreateRequest, opts ...grpc.CallOption) (*CreateResponse, error)
	// Delete deletes the lease and makes any unreferenced objects created
	// during the lease eligible for garbage collection if not referenced
	// or retained by other resources during the lease.
	Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*types.Empty, error)
	// List lists all active leases, returning the full list of
	// leases and optionally including the referenced resources.
	List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error)
	// AddResource references the resource by the provided lease.
	AddResource(ctx context.Context, in *AddResourceRequest, opts ...grpc.CallOption) (*types.Empty, error)
	// DeleteResource dereferences the resource by the provided lease.
	DeleteResource(ctx context.Context, in *DeleteResourceRequest, opts ...grpc.CallOption) (*types.Empty, error)
	// ListResources lists all the resources referenced by the lease.
	ListResources(ctx context.Context, in *ListResourcesRequest, opts ...grpc.CallOption) (*ListResourcesResponse, error)
}

LeasesClient is the client API for Leases service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewLeasesClient

func NewLeasesClient(cc *grpc.ClientConn) LeasesClient

type LeasesServer

type LeasesServer interface {
	// Create creates a new lease for managing changes to metadata. A lease
	// can be used to protect objects from being removed.
	Create(context.Context, *CreateRequest) (*CreateResponse, error)
	// Delete deletes the lease and makes any unreferenced objects created
	// during the lease eligible for garbage collection if not referenced
	// or retained by other resources during the lease.
	Delete(context.Context, *DeleteRequest) (*types.Empty, error)
	// List lists all active leases, returning the full list of
	// leases and optionally including the referenced resources.
	List(context.Context, *ListRequest) (*ListResponse, error)
	// AddResource references the resource by the provided lease.
	AddResource(context.Context, *AddResourceRequest) (*types.Empty, error)
	// DeleteResource dereferences the resource by the provided lease.
	DeleteResource(context.Context, *DeleteResourceRequest) (*types.Empty, error)
	// ListResources lists all the resources referenced by the lease.
	ListResources(context.Context, *ListResourcesRequest) (*ListResourcesResponse, error)
}

LeasesServer is the server API for Leases service.

type ListRequest

type ListRequest struct {
	Filters              []string `protobuf:"bytes,1,rep,name=filters,proto3" json:"filters,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*ListRequest) Descriptor

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

func (*ListRequest) Marshal

func (m *ListRequest) Marshal() (dAtA []byte, err error)

func (*ListRequest) MarshalTo

func (m *ListRequest) MarshalTo(dAtA []byte) (int, error)

func (*ListRequest) ProtoMessage

func (*ListRequest) ProtoMessage()

func (*ListRequest) Reset

func (m *ListRequest) Reset()

func (*ListRequest) Size

func (m *ListRequest) Size() (n int)

func (*ListRequest) String

func (this *ListRequest) String() string

func (*ListRequest) Unmarshal

func (m *ListRequest) Unmarshal(dAtA []byte) error

func (*ListRequest) XXX_DiscardUnknown added in v1.3.0

func (m *ListRequest) XXX_DiscardUnknown()

func (*ListRequest) XXX_Marshal added in v1.3.0

func (m *ListRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ListRequest) XXX_Merge added in v1.3.0

func (m *ListRequest) XXX_Merge(src proto.Message)

func (*ListRequest) XXX_Size added in v1.3.0

func (m *ListRequest) XXX_Size() int

func (*ListRequest) XXX_Unmarshal added in v1.3.0

func (m *ListRequest) XXX_Unmarshal(b []byte) error

type ListResourcesRequest added in v1.3.0

type ListResourcesRequest struct {
	ID                   string   `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*ListResourcesRequest) Descriptor added in v1.3.0

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

func (*ListResourcesRequest) Marshal added in v1.3.0

func (m *ListResourcesRequest) Marshal() (dAtA []byte, err error)

func (*ListResourcesRequest) MarshalTo added in v1.3.0

func (m *ListResourcesRequest) MarshalTo(dAtA []byte) (int, error)

func (*ListResourcesRequest) ProtoMessage added in v1.3.0

func (*ListResourcesRequest) ProtoMessage()

func (*ListResourcesRequest) Reset added in v1.3.0

func (m *ListResourcesRequest) Reset()

func (*ListResourcesRequest) Size added in v1.3.0

func (m *ListResourcesRequest) Size() (n int)

func (*ListResourcesRequest) String added in v1.3.0

func (this *ListResourcesRequest) String() string

func (*ListResourcesRequest) Unmarshal added in v1.3.0

func (m *ListResourcesRequest) Unmarshal(dAtA []byte) error

func (*ListResourcesRequest) XXX_DiscardUnknown added in v1.3.0

func (m *ListResourcesRequest) XXX_DiscardUnknown()

func (*ListResourcesRequest) XXX_Marshal added in v1.3.0

func (m *ListResourcesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ListResourcesRequest) XXX_Merge added in v1.3.0

func (m *ListResourcesRequest) XXX_Merge(src proto.Message)

func (*ListResourcesRequest) XXX_Size added in v1.3.0

func (m *ListResourcesRequest) XXX_Size() int

func (*ListResourcesRequest) XXX_Unmarshal added in v1.3.0

func (m *ListResourcesRequest) XXX_Unmarshal(b []byte) error

type ListResourcesResponse added in v1.3.0

type ListResourcesResponse struct {
	Resources            []Resource `protobuf:"bytes,1,rep,name=resources,proto3" json:"resources"`
	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
	XXX_unrecognized     []byte     `json:"-"`
	XXX_sizecache        int32      `json:"-"`
}

func (*ListResourcesResponse) Descriptor added in v1.3.0

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

func (*ListResourcesResponse) Marshal added in v1.3.0

func (m *ListResourcesResponse) Marshal() (dAtA []byte, err error)

func (*ListResourcesResponse) MarshalTo added in v1.3.0

func (m *ListResourcesResponse) MarshalTo(dAtA []byte) (int, error)

func (*ListResourcesResponse) ProtoMessage added in v1.3.0

func (*ListResourcesResponse) ProtoMessage()

func (*ListResourcesResponse) Reset added in v1.3.0

func (m *ListResourcesResponse) Reset()

func (*ListResourcesResponse) Size added in v1.3.0

func (m *ListResourcesResponse) Size() (n int)

func (*ListResourcesResponse) String added in v1.3.0

func (this *ListResourcesResponse) String() string

func (*ListResourcesResponse) Unmarshal added in v1.3.0

func (m *ListResourcesResponse) Unmarshal(dAtA []byte) error

func (*ListResourcesResponse) XXX_DiscardUnknown added in v1.3.0

func (m *ListResourcesResponse) XXX_DiscardUnknown()

func (*ListResourcesResponse) XXX_Marshal added in v1.3.0

func (m *ListResourcesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ListResourcesResponse) XXX_Merge added in v1.3.0

func (m *ListResourcesResponse) XXX_Merge(src proto.Message)

func (*ListResourcesResponse) XXX_Size added in v1.3.0

func (m *ListResourcesResponse) XXX_Size() int

func (*ListResourcesResponse) XXX_Unmarshal added in v1.3.0

func (m *ListResourcesResponse) XXX_Unmarshal(b []byte) error

type ListResponse

type ListResponse struct {
	Leases               []*Lease `protobuf:"bytes,1,rep,name=leases,proto3" json:"leases,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*ListResponse) Descriptor

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

func (*ListResponse) Marshal

func (m *ListResponse) Marshal() (dAtA []byte, err error)

func (*ListResponse) MarshalTo

func (m *ListResponse) MarshalTo(dAtA []byte) (int, error)

func (*ListResponse) ProtoMessage

func (*ListResponse) ProtoMessage()

func (*ListResponse) Reset

func (m *ListResponse) Reset()

func (*ListResponse) Size

func (m *ListResponse) Size() (n int)

func (*ListResponse) String

func (this *ListResponse) String() string

func (*ListResponse) Unmarshal

func (m *ListResponse) Unmarshal(dAtA []byte) error

func (*ListResponse) XXX_DiscardUnknown added in v1.3.0

func (m *ListResponse) XXX_DiscardUnknown()

func (*ListResponse) XXX_Marshal added in v1.3.0

func (m *ListResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ListResponse) XXX_Merge added in v1.3.0

func (m *ListResponse) XXX_Merge(src proto.Message)

func (*ListResponse) XXX_Size added in v1.3.0

func (m *ListResponse) XXX_Size() int

func (*ListResponse) XXX_Unmarshal added in v1.3.0

func (m *ListResponse) XXX_Unmarshal(b []byte) error

type Resource added in v1.3.0

type Resource struct {
	ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// For snapshotter resource, there are many snapshotter types here, like
	// overlayfs, devmapper etc. The type will be formatted with type,
	// like "snapshotter/overlayfs".
	Type                 string   `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*Resource) Descriptor added in v1.3.0

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

func (*Resource) Marshal added in v1.3.0

func (m *Resource) Marshal() (dAtA []byte, err error)

func (*Resource) MarshalTo added in v1.3.0

func (m *Resource) MarshalTo(dAtA []byte) (int, error)

func (*Resource) ProtoMessage added in v1.3.0

func (*Resource) ProtoMessage()

func (*Resource) Reset added in v1.3.0

func (m *Resource) Reset()

func (*Resource) Size added in v1.3.0

func (m *Resource) Size() (n int)

func (*Resource) String added in v1.3.0

func (this *Resource) String() string

func (*Resource) Unmarshal added in v1.3.0

func (m *Resource) Unmarshal(dAtA []byte) error

func (*Resource) XXX_DiscardUnknown added in v1.3.0

func (m *Resource) XXX_DiscardUnknown()

func (*Resource) XXX_Marshal added in v1.3.0

func (m *Resource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Resource) XXX_Merge added in v1.3.0

func (m *Resource) XXX_Merge(src proto.Message)

func (*Resource) XXX_Size added in v1.3.0

func (m *Resource) XXX_Size() int

func (*Resource) XXX_Unmarshal added in v1.3.0

func (m *Resource) XXX_Unmarshal(b []byte) error

Jump to

Keyboard shortcuts

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