personalizeevents

package
v1.38.26-0...-e443fa6 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package personalizeevents provides the client and types for making API requests to Amazon Personalize Events.

Amazon Personalize can consume real-time user event data, such as stream or click data, and use it for model training either alone or combined with historical data. For more information see Recording Events (https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html).

See https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22 for more information on this service.

See personalizeevents package documentation for more information. https://docs.aws.amazon.com/sdk-for-go/api/service/personalizeevents/

Using the Client

To contact Amazon Personalize Events with the SDK use the New function to create a new service client. With that client you can make API requests to the service. These clients are safe to use concurrently.

See the SDK's documentation for more information on how to use the SDK. https://docs.aws.amazon.com/sdk-for-go/api/

See aws.Config documentation for more information on configuring SDK clients. https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config

See the Amazon Personalize Events client PersonalizeEvents for more information on creating client for this service. https://docs.aws.amazon.com/sdk-for-go/api/service/personalizeevents/#New

Index

Constants

View Source
const (

	// ErrCodeInvalidInputException for service response error code
	// "InvalidInputException".
	//
	// Provide a valid value for the field or parameter.
	ErrCodeInvalidInputException = "InvalidInputException"

	// ErrCodeResourceInUseException for service response error code
	// "ResourceInUseException".
	//
	// The specified resource is in use.
	ErrCodeResourceInUseException = "ResourceInUseException"

	// ErrCodeResourceNotFoundException for service response error code
	// "ResourceNotFoundException".
	//
	// Could not find the specified resource.
	ErrCodeResourceNotFoundException = "ResourceNotFoundException"
)
View Source
const (
	ServiceName = "Personalize Events" // Name of service.
	EndpointsID = "personalize-events" // ID to lookup a service endpoint with.
	ServiceID   = "Personalize Events" // ServiceID is a unique identifier of a specific service.
)

Service information constants

Variables

This section is empty.

Functions

This section is empty.

Types

type Event

type Event struct {

	// An ID associated with the event. If an event ID is not provided, Amazon Personalize
	// generates a unique ID for the event. An event ID is not used as an input
	// to the model. Amazon Personalize uses the event ID to distinquish unique
	// events. Any subsequent events after the first with the same event ID are
	// not used in model training.
	EventId *string `locationName:"eventId" min:"1" type:"string"`

	// The type of event, such as click or download. This property corresponds to
	// the EVENT_TYPE field of your Interactions schema and depends on the types
	// of events you are tracking.
	//
	// EventType is a required field
	EventType *string `locationName:"eventType" min:"1" type:"string" required:"true"`

	// The event value that corresponds to the EVENT_VALUE field of the Interactions
	// schema.
	EventValue *float64 `locationName:"eventValue" type:"float"`

	// A list of item IDs that represents the sequence of items you have shown the
	// user. For example, ["itemId1", "itemId2", "itemId3"].
	Impression []*string `locationName:"impression" min:"1" type:"list"`

	// The item ID key that corresponds to the ITEM_ID field of the Interactions
	// schema.
	ItemId *string `locationName:"itemId" min:"1" type:"string"`

	// A string map of event-specific data that you might choose to record. For
	// example, if a user rates a movie on your site, other than movie ID (itemId)
	// and rating (eventValue) , you might also send the number of movie ratings
	// made by the user.
	//
	// Each item in the map consists of a key-value pair. For example,
	//
	// {"numberOfRatings": "12"}
	//
	// The keys use camel case names that match the fields in the Interactions schema.
	// In the above example, the numberOfRatings would match the 'NUMBER_OF_RATINGS'
	// field defined in the Interactions schema.
	Properties aws.JSONValue `locationName:"properties" type:"jsonvalue"`

	// The ID of the recommendation.
	RecommendationId *string `locationName:"recommendationId" min:"1" type:"string"`

	// The timestamp (in Unix time) on the client side when the event occurred.
	//
	// SentAt is a required field
	SentAt *time.Time `locationName:"sentAt" type:"timestamp" required:"true"`
	// contains filtered or unexported fields
}

Represents user interaction event information sent using the PutEvents API.

func (Event) GoString

func (s Event) GoString() string

GoString returns the string representation

func (*Event) SetEventId

func (s *Event) SetEventId(v string) *Event

SetEventId sets the EventId field's value.

func (*Event) SetEventType

func (s *Event) SetEventType(v string) *Event

SetEventType sets the EventType field's value.

func (*Event) SetEventValue

func (s *Event) SetEventValue(v float64) *Event

SetEventValue sets the EventValue field's value.

func (*Event) SetImpression

func (s *Event) SetImpression(v []*string) *Event

SetImpression sets the Impression field's value.

func (*Event) SetItemId

func (s *Event) SetItemId(v string) *Event

SetItemId sets the ItemId field's value.

func (*Event) SetProperties

func (s *Event) SetProperties(v aws.JSONValue) *Event

SetProperties sets the Properties field's value.

func (*Event) SetRecommendationId

func (s *Event) SetRecommendationId(v string) *Event

SetRecommendationId sets the RecommendationId field's value.

func (*Event) SetSentAt

func (s *Event) SetSentAt(v time.Time) *Event

SetSentAt sets the SentAt field's value.

func (Event) String

func (s Event) String() string

String returns the string representation

func (*Event) Validate

func (s *Event) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type InvalidInputException

type InvalidInputException struct {
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
	// contains filtered or unexported fields
}

Provide a valid value for the field or parameter.

func (*InvalidInputException) Code

func (s *InvalidInputException) Code() string

Code returns the exception type name.

func (*InvalidInputException) Error

func (s *InvalidInputException) Error() string

func (InvalidInputException) GoString

func (s InvalidInputException) GoString() string

GoString returns the string representation

func (*InvalidInputException) Message

func (s *InvalidInputException) Message() string

Message returns the exception's message.

func (*InvalidInputException) OrigErr

func (s *InvalidInputException) OrigErr() error

OrigErr always returns nil, satisfies awserr.Error interface.

func (*InvalidInputException) RequestID

func (s *InvalidInputException) RequestID() string

RequestID returns the service's response RequestID for request.

func (*InvalidInputException) StatusCode

func (s *InvalidInputException) StatusCode() int

Status code returns the HTTP status code for the request's response error.

func (InvalidInputException) String

func (s InvalidInputException) String() string

String returns the string representation

type Item

type Item struct {

	// The ID associated with the item.
	//
	// ItemId is a required field
	ItemId *string `locationName:"itemId" min:"1" type:"string" required:"true"`

	// A string map of item-specific metadata. Each element in the map consists
	// of a key-value pair. For example, {"numberOfRatings": "12"}.
	//
	// The keys use camel case names that match the fields in the schema for the
	// Items dataset. In the previous example, the numberOfRatings matches the 'NUMBER_OF_RATINGS'
	// field defined in the Items schema. For categorical string data, to include
	// multiple categories for a single item, separate each category with a pipe
	// separator (|). For example, \"Horror|Action\".
	Properties aws.JSONValue `locationName:"properties" type:"jsonvalue"`
	// contains filtered or unexported fields
}

Represents item metadata added to an Items dataset using the PutItems API. For more information see Importing Items Incrementally (https://docs.aws.amazon.com/personalize/latest/dg/importing-items.html).

func (Item) GoString

func (s Item) GoString() string

GoString returns the string representation

func (*Item) SetItemId

func (s *Item) SetItemId(v string) *Item

SetItemId sets the ItemId field's value.

func (*Item) SetProperties

func (s *Item) SetProperties(v aws.JSONValue) *Item

SetProperties sets the Properties field's value.

func (Item) String

func (s Item) String() string

String returns the string representation

func (*Item) Validate

func (s *Item) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type PersonalizeEvents

type PersonalizeEvents struct {
	*client.Client
}

PersonalizeEvents provides the API operation methods for making requests to Amazon Personalize Events. See this package's package overview docs for details on the service.

PersonalizeEvents methods are safe to use concurrently. It is not safe to modify mutate any of the struct's properties though.

func New

New creates a new instance of the PersonalizeEvents client with a session. If additional configuration is needed for the client instance use the optional aws.Config parameter to add your extra config.

Example:

mySession := session.Must(session.NewSession())

// Create a PersonalizeEvents client from just a session.
svc := personalizeevents.New(mySession)

// Create a PersonalizeEvents client with additional configuration
svc := personalizeevents.New(mySession, aws.NewConfig().WithRegion("us-west-2"))

func (*PersonalizeEvents) PutEvents

func (c *PersonalizeEvents) PutEvents(input *PutEventsInput) (*PutEventsOutput, error)

PutEvents API operation for Amazon Personalize Events.

Records user interaction event data. For more information see Recording Events (https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html).

Returns awserr.Error for service API and SDK errors. Use runtime type assertions with awserr.Error's Code and Message methods to get detailed information about the error.

See the AWS API reference guide for Amazon Personalize Events's API operation PutEvents for usage and error information.

Returned Error Types:

  • InvalidInputException Provide a valid value for the field or parameter.

See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutEvents

func (*PersonalizeEvents) PutEventsRequest

func (c *PersonalizeEvents) PutEventsRequest(input *PutEventsInput) (req *request.Request, output *PutEventsOutput)

PutEventsRequest generates a "aws/request.Request" representing the client's request for the PutEvents operation. The "output" return value will be populated with the request's response once the request completes successfully.

Use "Send" method on the returned Request to send the API call to the service. the "output" return value is not valid until after Send returns without error.

See PutEvents for more information on using the PutEvents API call, and error handling.

This method is useful when you want to inject custom logic or configuration into the SDK's request lifecycle. Such as custom headers, or retry logic.

// Example sending a request using the PutEventsRequest method.
req, resp := client.PutEventsRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutEvents

func (*PersonalizeEvents) PutEventsWithContext

func (c *PersonalizeEvents) PutEventsWithContext(ctx aws.Context, input *PutEventsInput, opts ...request.Option) (*PutEventsOutput, error)

PutEventsWithContext is the same as PutEvents with the addition of the ability to pass a context and additional request options.

See PutEvents for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If the context is nil a panic will occur. In the future the SDK may create sub-contexts for http.Requests. See https://golang.org/pkg/context/ for more information on using Contexts.

func (*PersonalizeEvents) PutItems

func (c *PersonalizeEvents) PutItems(input *PutItemsInput) (*PutItemsOutput, error)

PutItems API operation for Amazon Personalize Events.

Adds one or more items to an Items dataset. For more information see Importing Items Incrementally (https://docs.aws.amazon.com/personalize/latest/dg/importing-items.html).

Returns awserr.Error for service API and SDK errors. Use runtime type assertions with awserr.Error's Code and Message methods to get detailed information about the error.

See the AWS API reference guide for Amazon Personalize Events's API operation PutItems for usage and error information.

Returned Error Types:

  • InvalidInputException Provide a valid value for the field or parameter.

  • ResourceNotFoundException Could not find the specified resource.

  • ResourceInUseException The specified resource is in use.

See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutItems

func (*PersonalizeEvents) PutItemsRequest

func (c *PersonalizeEvents) PutItemsRequest(input *PutItemsInput) (req *request.Request, output *PutItemsOutput)

PutItemsRequest generates a "aws/request.Request" representing the client's request for the PutItems operation. The "output" return value will be populated with the request's response once the request completes successfully.

Use "Send" method on the returned Request to send the API call to the service. the "output" return value is not valid until after Send returns without error.

See PutItems for more information on using the PutItems API call, and error handling.

This method is useful when you want to inject custom logic or configuration into the SDK's request lifecycle. Such as custom headers, or retry logic.

// Example sending a request using the PutItemsRequest method.
req, resp := client.PutItemsRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutItems

func (*PersonalizeEvents) PutItemsWithContext

func (c *PersonalizeEvents) PutItemsWithContext(ctx aws.Context, input *PutItemsInput, opts ...request.Option) (*PutItemsOutput, error)

PutItemsWithContext is the same as PutItems with the addition of the ability to pass a context and additional request options.

See PutItems for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If the context is nil a panic will occur. In the future the SDK may create sub-contexts for http.Requests. See https://golang.org/pkg/context/ for more information on using Contexts.

func (*PersonalizeEvents) PutUsers

func (c *PersonalizeEvents) PutUsers(input *PutUsersInput) (*PutUsersOutput, error)

PutUsers API operation for Amazon Personalize Events.

Adds one or more users to a Users dataset. For more information see Importing Users Incrementally (https://docs.aws.amazon.com/personalize/latest/dg/importing-users.html).

Returns awserr.Error for service API and SDK errors. Use runtime type assertions with awserr.Error's Code and Message methods to get detailed information about the error.

See the AWS API reference guide for Amazon Personalize Events's API operation PutUsers for usage and error information.

Returned Error Types:

  • InvalidInputException Provide a valid value for the field or parameter.

  • ResourceNotFoundException Could not find the specified resource.

  • ResourceInUseException The specified resource is in use.

See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutUsers

func (*PersonalizeEvents) PutUsersRequest

func (c *PersonalizeEvents) PutUsersRequest(input *PutUsersInput) (req *request.Request, output *PutUsersOutput)

PutUsersRequest generates a "aws/request.Request" representing the client's request for the PutUsers operation. The "output" return value will be populated with the request's response once the request completes successfully.

Use "Send" method on the returned Request to send the API call to the service. the "output" return value is not valid until after Send returns without error.

See PutUsers for more information on using the PutUsers API call, and error handling.

This method is useful when you want to inject custom logic or configuration into the SDK's request lifecycle. Such as custom headers, or retry logic.

// Example sending a request using the PutUsersRequest method.
req, resp := client.PutUsersRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/personalize-events-2018-03-22/PutUsers

func (*PersonalizeEvents) PutUsersWithContext

func (c *PersonalizeEvents) PutUsersWithContext(ctx aws.Context, input *PutUsersInput, opts ...request.Option) (*PutUsersOutput, error)

PutUsersWithContext is the same as PutUsers with the addition of the ability to pass a context and additional request options.

See PutUsers for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If the context is nil a panic will occur. In the future the SDK may create sub-contexts for http.Requests. See https://golang.org/pkg/context/ for more information on using Contexts.

type PutEventsInput

type PutEventsInput struct {

	// A list of event data from the session.
	//
	// EventList is a required field
	EventList []*Event `locationName:"eventList" min:"1" type:"list" required:"true"`

	// The session ID associated with the user's visit. Your application generates
	// the sessionId when a user first visits your website or uses your application.
	// Amazon Personalize uses the sessionId to associate events with the user before
	// they log in. For more information, see Recording Events (https://docs.aws.amazon.com/personalize/latest/dg/recording-events.html).
	//
	// SessionId is a required field
	SessionId *string `locationName:"sessionId" min:"1" type:"string" required:"true"`

	// The tracking ID for the event. The ID is generated by a call to the CreateEventTracker
	// (https://docs.aws.amazon.com/personalize/latest/dg/API_CreateEventTracker.html)
	// API.
	//
	// TrackingId is a required field
	TrackingId *string `locationName:"trackingId" min:"1" type:"string" required:"true"`

	// The user associated with the event.
	UserId *string `locationName:"userId" min:"1" type:"string"`
	// contains filtered or unexported fields
}

func (PutEventsInput) GoString

func (s PutEventsInput) GoString() string

GoString returns the string representation

func (*PutEventsInput) SetEventList

func (s *PutEventsInput) SetEventList(v []*Event) *PutEventsInput

SetEventList sets the EventList field's value.

func (*PutEventsInput) SetSessionId

func (s *PutEventsInput) SetSessionId(v string) *PutEventsInput

SetSessionId sets the SessionId field's value.

func (*PutEventsInput) SetTrackingId

func (s *PutEventsInput) SetTrackingId(v string) *PutEventsInput

SetTrackingId sets the TrackingId field's value.

func (*PutEventsInput) SetUserId

func (s *PutEventsInput) SetUserId(v string) *PutEventsInput

SetUserId sets the UserId field's value.

func (PutEventsInput) String

func (s PutEventsInput) String() string

String returns the string representation

func (*PutEventsInput) Validate

func (s *PutEventsInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type PutEventsOutput

type PutEventsOutput struct {
	// contains filtered or unexported fields
}

func (PutEventsOutput) GoString

func (s PutEventsOutput) GoString() string

GoString returns the string representation

func (PutEventsOutput) String

func (s PutEventsOutput) String() string

String returns the string representation

type PutItemsInput

type PutItemsInput struct {

	// The Amazon Resource Name (ARN) of the Items dataset you are adding the item
	// or items to.
	//
	// DatasetArn is a required field
	DatasetArn *string `locationName:"datasetArn" type:"string" required:"true"`

	// A list of item data.
	//
	// Items is a required field
	Items []*Item `locationName:"items" min:"1" type:"list" required:"true"`
	// contains filtered or unexported fields
}

func (PutItemsInput) GoString

func (s PutItemsInput) GoString() string

GoString returns the string representation

func (*PutItemsInput) SetDatasetArn

func (s *PutItemsInput) SetDatasetArn(v string) *PutItemsInput

SetDatasetArn sets the DatasetArn field's value.

func (*PutItemsInput) SetItems

func (s *PutItemsInput) SetItems(v []*Item) *PutItemsInput

SetItems sets the Items field's value.

func (PutItemsInput) String

func (s PutItemsInput) String() string

String returns the string representation

func (*PutItemsInput) Validate

func (s *PutItemsInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type PutItemsOutput

type PutItemsOutput struct {
	// contains filtered or unexported fields
}

func (PutItemsOutput) GoString

func (s PutItemsOutput) GoString() string

GoString returns the string representation

func (PutItemsOutput) String

func (s PutItemsOutput) String() string

String returns the string representation

type PutUsersInput

type PutUsersInput struct {

	// The Amazon Resource Name (ARN) of the Users dataset you are adding the user
	// or users to.
	//
	// DatasetArn is a required field
	DatasetArn *string `locationName:"datasetArn" type:"string" required:"true"`

	// A list of user data.
	//
	// Users is a required field
	Users []*User `locationName:"users" min:"1" type:"list" required:"true"`
	// contains filtered or unexported fields
}

func (PutUsersInput) GoString

func (s PutUsersInput) GoString() string

GoString returns the string representation

func (*PutUsersInput) SetDatasetArn

func (s *PutUsersInput) SetDatasetArn(v string) *PutUsersInput

SetDatasetArn sets the DatasetArn field's value.

func (*PutUsersInput) SetUsers

func (s *PutUsersInput) SetUsers(v []*User) *PutUsersInput

SetUsers sets the Users field's value.

func (PutUsersInput) String

func (s PutUsersInput) String() string

String returns the string representation

func (*PutUsersInput) Validate

func (s *PutUsersInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type PutUsersOutput

type PutUsersOutput struct {
	// contains filtered or unexported fields
}

func (PutUsersOutput) GoString

func (s PutUsersOutput) GoString() string

GoString returns the string representation

func (PutUsersOutput) String

func (s PutUsersOutput) String() string

String returns the string representation

type ResourceInUseException

type ResourceInUseException struct {
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
	// contains filtered or unexported fields
}

The specified resource is in use.

func (*ResourceInUseException) Code

func (s *ResourceInUseException) Code() string

Code returns the exception type name.

func (*ResourceInUseException) Error

func (s *ResourceInUseException) Error() string

func (ResourceInUseException) GoString

func (s ResourceInUseException) GoString() string

GoString returns the string representation

func (*ResourceInUseException) Message

func (s *ResourceInUseException) Message() string

Message returns the exception's message.

func (*ResourceInUseException) OrigErr

func (s *ResourceInUseException) OrigErr() error

OrigErr always returns nil, satisfies awserr.Error interface.

func (*ResourceInUseException) RequestID

func (s *ResourceInUseException) RequestID() string

RequestID returns the service's response RequestID for request.

func (*ResourceInUseException) StatusCode

func (s *ResourceInUseException) StatusCode() int

Status code returns the HTTP status code for the request's response error.

func (ResourceInUseException) String

func (s ResourceInUseException) String() string

String returns the string representation

type ResourceNotFoundException

type ResourceNotFoundException struct {
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
	// contains filtered or unexported fields
}

Could not find the specified resource.

func (*ResourceNotFoundException) Code

Code returns the exception type name.

func (*ResourceNotFoundException) Error

func (s *ResourceNotFoundException) Error() string

func (ResourceNotFoundException) GoString

func (s ResourceNotFoundException) GoString() string

GoString returns the string representation

func (*ResourceNotFoundException) Message

func (s *ResourceNotFoundException) Message() string

Message returns the exception's message.

func (*ResourceNotFoundException) OrigErr

func (s *ResourceNotFoundException) OrigErr() error

OrigErr always returns nil, satisfies awserr.Error interface.

func (*ResourceNotFoundException) RequestID

func (s *ResourceNotFoundException) RequestID() string

RequestID returns the service's response RequestID for request.

func (*ResourceNotFoundException) StatusCode

func (s *ResourceNotFoundException) StatusCode() int

Status code returns the HTTP status code for the request's response error.

func (ResourceNotFoundException) String

func (s ResourceNotFoundException) String() string

String returns the string representation

type User

type User struct {

	// A string map of user-specific metadata. Each element in the map consists
	// of a key-value pair. For example, {"numberOfVideosWatched": "45"}.
	//
	// The keys use camel case names that match the fields in the schema for the
	// Users dataset. In the previous example, the numberOfVideosWatched matches
	// the 'NUMBER_OF_VIDEOS_WATCHED' field defined in the Users schema. For categorical
	// string data, to include multiple categories for a single user, separate each
	// category with a pipe separator (|). For example, \"Member|Frequent shopper\".
	Properties aws.JSONValue `locationName:"properties" type:"jsonvalue"`

	// The ID associated with the user.
	//
	// UserId is a required field
	UserId *string `locationName:"userId" min:"1" type:"string" required:"true"`
	// contains filtered or unexported fields
}

Represents user metadata added to a Users dataset using the PutUsers API. For more information see Importing Users Incrementally (https://docs.aws.amazon.com/personalize/latest/dg/importing-users.html).

func (User) GoString

func (s User) GoString() string

GoString returns the string representation

func (*User) SetProperties

func (s *User) SetProperties(v aws.JSONValue) *User

SetProperties sets the Properties field's value.

func (*User) SetUserId

func (s *User) SetUserId(v string) *User

SetUserId sets the UserId field's value.

func (User) String

func (s User) String() string

String returns the string representation

func (*User) Validate

func (s *User) Validate() error

Validate inspects the fields of the type to determine if they are valid.

Directories

Path Synopsis
Package personalizeeventsiface provides an interface to enable mocking the Amazon Personalize Events service client for testing your code.
Package personalizeeventsiface provides an interface to enable mocking the Amazon Personalize Events service client for testing your code.

Jump to

Keyboard shortcuts

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