roles

package
v0.20240312.1161024 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2024 License: MPL-2.0 Imports: 12 Imported by: 0

README

github.com/hashicorp/go-azure-sdk/resource-manager/databoxedge/2023-12-01/roles Documentation

The roles SDK allows for interaction with the Azure Resource Manager Service databoxedge (API Version 2023-12-01).

This readme covers example usages, but further information on using this SDK can be found in the project root.

Import Path

import "github.com/hashicorp/go-azure-sdk/resource-manager/databoxedge/2023-12-01/roles"

Client Initialization

client := roles.NewRolesClientWithBaseURI("https://management.azure.com")
client.Client.Authorizer = authorizer

Example Usage: RolesClient.CreateOrUpdate

ctx := context.TODO()
id := roles.NewRoleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "dataBoxEdgeDeviceValue", "roleValue")

payload := roles.Role{
	// ...
}


if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil {
	// handle the error
}

Example Usage: RolesClient.Delete

ctx := context.TODO()
id := roles.NewRoleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "dataBoxEdgeDeviceValue", "roleValue")

if err := client.DeleteThenPoll(ctx, id); err != nil {
	// handle the error
}

Example Usage: RolesClient.Get

ctx := context.TODO()
id := roles.NewRoleID("12345678-1234-9876-4563-123456789012", "example-resource-group", "dataBoxEdgeDeviceValue", "roleValue")

read, err := client.Get(ctx, id)
if err != nil {
	// handle the error
}
if model := read.Model; model != nil {
	// do something with the model/response object
}

Example Usage: RolesClient.ListByDataBoxEdgeDevice

ctx := context.TODO()
id := roles.NewDataBoxEdgeDeviceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "dataBoxEdgeDeviceValue")

// alternatively `client.ListByDataBoxEdgeDevice(ctx, id)` can be used to do batched pagination
items, err := client.ListByDataBoxEdgeDeviceComplete(ctx, id)
if err != nil {
	// handle the error
}
for _, item := range items {
	// do something
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PossibleValuesForEncryptionAlgorithm

func PossibleValuesForEncryptionAlgorithm() []string

func PossibleValuesForHostPlatformType

func PossibleValuesForHostPlatformType() []string

func PossibleValuesForKubernetesNodeType

func PossibleValuesForKubernetesNodeType() []string

func PossibleValuesForKubernetesState

func PossibleValuesForKubernetesState() []string

func PossibleValuesForMountType

func PossibleValuesForMountType() []string

func PossibleValuesForPlatformType

func PossibleValuesForPlatformType() []string

func PossibleValuesForPosixComplianceStatus

func PossibleValuesForPosixComplianceStatus() []string

func PossibleValuesForRoleStatus

func PossibleValuesForRoleStatus() []string

func PossibleValuesForRoleTypes

func PossibleValuesForRoleTypes() []string

func PossibleValuesForSubscriptionState

func PossibleValuesForSubscriptionState() []string

func ValidateDataBoxEdgeDeviceID

func ValidateDataBoxEdgeDeviceID(input interface{}, key string) (warnings []string, errors []error)

ValidateDataBoxEdgeDeviceID checks that 'input' can be parsed as a Data Box Edge Device ID

func ValidateRoleID

func ValidateRoleID(input interface{}, key string) (warnings []string, errors []error)

ValidateRoleID checks that 'input' can be parsed as a Role ID

Types

type AsymmetricEncryptedSecret

type AsymmetricEncryptedSecret struct {
	EncryptionAlgorithm      EncryptionAlgorithm `json:"encryptionAlgorithm"`
	EncryptionCertThumbprint *string             `json:"encryptionCertThumbprint,omitempty"`
	Value                    string              `json:"value"`
}

type Authentication

type Authentication struct {
	SymmetricKey *SymmetricKey `json:"symmetricKey,omitempty"`
}

type CloudEdgeManagementRole

type CloudEdgeManagementRole struct {
	Properties *CloudEdgeManagementRoleProperties `json:"properties,omitempty"`

	// Fields inherited from Role
	Id         *string                `json:"id,omitempty"`
	Name       *string                `json:"name,omitempty"`
	SystemData *systemdata.SystemData `json:"systemData,omitempty"`
	Type       *string                `json:"type,omitempty"`
}

func (CloudEdgeManagementRole) MarshalJSON

func (s CloudEdgeManagementRole) MarshalJSON() ([]byte, error)

type CloudEdgeManagementRoleProperties

type CloudEdgeManagementRoleProperties struct {
	EdgeProfile           *EdgeProfile `json:"edgeProfile,omitempty"`
	LocalManagementStatus *RoleStatus  `json:"localManagementStatus,omitempty"`
	RoleStatus            RoleStatus   `json:"roleStatus"`
}

type CniConfig

type CniConfig struct {
	PodSubnet     *string `json:"podSubnet,omitempty"`
	ServiceSubnet *string `json:"serviceSubnet,omitempty"`
	Type          *string `json:"type,omitempty"`
	Version       *string `json:"version,omitempty"`
}

type ComputeResource

type ComputeResource struct {
	MemoryInGB     int64 `json:"memoryInGB"`
	ProcessorCount int64 `json:"processorCount"`
}

type CreateOrUpdateOperationResponse

type CreateOrUpdateOperationResponse struct {
	Poller       pollers.Poller
	HttpResponse *http.Response
	OData        *odata.OData
	Model        *Role
}

type DataBoxEdgeDeviceId

type DataBoxEdgeDeviceId struct {
	SubscriptionId        string
	ResourceGroupName     string
	DataBoxEdgeDeviceName string
}

DataBoxEdgeDeviceId is a struct representing the Resource ID for a Data Box Edge Device

func NewDataBoxEdgeDeviceID

func NewDataBoxEdgeDeviceID(subscriptionId string, resourceGroupName string, dataBoxEdgeDeviceName string) DataBoxEdgeDeviceId

NewDataBoxEdgeDeviceID returns a new DataBoxEdgeDeviceId struct

func ParseDataBoxEdgeDeviceID

func ParseDataBoxEdgeDeviceID(input string) (*DataBoxEdgeDeviceId, error)

ParseDataBoxEdgeDeviceID parses 'input' into a DataBoxEdgeDeviceId

func ParseDataBoxEdgeDeviceIDInsensitively

func ParseDataBoxEdgeDeviceIDInsensitively(input string) (*DataBoxEdgeDeviceId, error)

ParseDataBoxEdgeDeviceIDInsensitively parses 'input' case-insensitively into a DataBoxEdgeDeviceId note: this method should only be used for API response data and not user input

func (*DataBoxEdgeDeviceId) FromParseResult

func (id *DataBoxEdgeDeviceId) FromParseResult(input resourceids.ParseResult) error

func (DataBoxEdgeDeviceId) ID

func (id DataBoxEdgeDeviceId) ID() string

ID returns the formatted Data Box Edge Device ID

func (DataBoxEdgeDeviceId) Segments

func (id DataBoxEdgeDeviceId) Segments() []resourceids.Segment

Segments returns a slice of Resource ID Segments which comprise this Data Box Edge Device ID

func (DataBoxEdgeDeviceId) String

func (id DataBoxEdgeDeviceId) String() string

String returns a human-readable description of this Data Box Edge Device ID

type DeleteOperationResponse

type DeleteOperationResponse struct {
	Poller       pollers.Poller
	HttpResponse *http.Response
	OData        *odata.OData
}

type EdgeProfile

type EdgeProfile struct {
	Subscription *EdgeProfileSubscription `json:"subscription,omitempty"`
}

type EdgeProfileSubscription

type EdgeProfileSubscription struct {
	Id               *string                 `json:"id,omitempty"`
	Properties       *SubscriptionProperties `json:"properties,omitempty"`
	RegistrationDate *string                 `json:"registrationDate,omitempty"`
	RegistrationId   *string                 `json:"registrationId,omitempty"`
	State            *SubscriptionState      `json:"state,omitempty"`
	SubscriptionId   *string                 `json:"subscriptionId,omitempty"`
}

type EncryptionAlgorithm

type EncryptionAlgorithm string
const (
	EncryptionAlgorithmAESTwoFiveSix        EncryptionAlgorithm = "AES256"
	EncryptionAlgorithmNone                 EncryptionAlgorithm = "None"
	EncryptionAlgorithmRSAESPKCSOneVOneFive EncryptionAlgorithm = "RSAES_PKCS1_v_1_5"
)

func (*EncryptionAlgorithm) UnmarshalJSON

func (s *EncryptionAlgorithm) UnmarshalJSON(bytes []byte) error

type EtcdInfo

type EtcdInfo struct {
	Type    *string `json:"type,omitempty"`
	Version *string `json:"version,omitempty"`
}

type GetOperationResponse

type GetOperationResponse struct {
	HttpResponse *http.Response
	OData        *odata.OData
	Model        *Role
}

type HostPlatformType

type HostPlatformType string
const (
	HostPlatformTypeKubernetesCluster HostPlatformType = "KubernetesCluster"
	HostPlatformTypeLinuxVM           HostPlatformType = "LinuxVM"
)

func (*HostPlatformType) UnmarshalJSON

func (s *HostPlatformType) UnmarshalJSON(bytes []byte) error

type ImageRepositoryCredential

type ImageRepositoryCredential struct {
	ImageRepositoryUrl string                     `json:"imageRepositoryUrl"`
	Password           *AsymmetricEncryptedSecret `json:"password,omitempty"`
	UserName           string                     `json:"userName"`
}

type IoTDeviceInfo

type IoTDeviceInfo struct {
	Authentication *Authentication `json:"authentication,omitempty"`
	DeviceId       string          `json:"deviceId"`
	IoTHostHub     string          `json:"ioTHostHub"`
	IoTHostHubId   *string         `json:"ioTHostHubId,omitempty"`
}

type IoTEdgeAgentInfo

type IoTEdgeAgentInfo struct {
	ImageName       string                     `json:"imageName"`
	ImageRepository *ImageRepositoryCredential `json:"imageRepository,omitempty"`
	Tag             string                     `json:"tag"`
}

type IoTRole

type IoTRole struct {
	Properties *IoTRoleProperties `json:"properties,omitempty"`

	// Fields inherited from Role
	Id         *string                `json:"id,omitempty"`
	Name       *string                `json:"name,omitempty"`
	SystemData *systemdata.SystemData `json:"systemData,omitempty"`
	Type       *string                `json:"type,omitempty"`
}

func (IoTRole) MarshalJSON

func (s IoTRole) MarshalJSON() ([]byte, error)

type IoTRoleProperties

type IoTRoleProperties struct {
	ComputeResource      *ComputeResource  `json:"computeResource,omitempty"`
	HostPlatform         PlatformType      `json:"hostPlatform"`
	HostPlatformType     *HostPlatformType `json:"hostPlatformType,omitempty"`
	IoTDeviceDetails     IoTDeviceInfo     `json:"ioTDeviceDetails"`
	IoTEdgeAgentInfo     *IoTEdgeAgentInfo `json:"ioTEdgeAgentInfo,omitempty"`
	IoTEdgeDeviceDetails IoTDeviceInfo     `json:"ioTEdgeDeviceDetails"`
	RoleStatus           RoleStatus        `json:"roleStatus"`
	ShareMappings        *[]MountPointMap  `json:"shareMappings,omitempty"`
}

type KubernetesClusterInfo

type KubernetesClusterInfo struct {
	EtcdInfo *EtcdInfo   `json:"etcdInfo,omitempty"`
	Nodes    *[]NodeInfo `json:"nodes,omitempty"`
	Version  string      `json:"version"`
}

type KubernetesIPConfiguration

type KubernetesIPConfiguration struct {
	IPAddress *string `json:"ipAddress,omitempty"`
	Port      *string `json:"port,omitempty"`
}

type KubernetesNodeType

type KubernetesNodeType string
const (
	KubernetesNodeTypeInvalid KubernetesNodeType = "Invalid"
	KubernetesNodeTypeMaster  KubernetesNodeType = "Master"
	KubernetesNodeTypeWorker  KubernetesNodeType = "Worker"
)

func (*KubernetesNodeType) UnmarshalJSON

func (s *KubernetesNodeType) UnmarshalJSON(bytes []byte) error

type KubernetesRole

type KubernetesRole struct {
	Properties *KubernetesRoleProperties `json:"properties,omitempty"`

	// Fields inherited from Role
	Id         *string                `json:"id,omitempty"`
	Name       *string                `json:"name,omitempty"`
	SystemData *systemdata.SystemData `json:"systemData,omitempty"`
	Type       *string                `json:"type,omitempty"`
}

func (KubernetesRole) MarshalJSON

func (s KubernetesRole) MarshalJSON() ([]byte, error)

type KubernetesRoleCompute

type KubernetesRoleCompute struct {
	MemoryInBytes  *int64 `json:"memoryInBytes,omitempty"`
	ProcessorCount *int64 `json:"processorCount,omitempty"`
	VMProfile      string `json:"vmProfile"`
}

type KubernetesRoleNetwork

type KubernetesRoleNetwork struct {
	CniConfig          *CniConfig          `json:"cniConfig,omitempty"`
	LoadBalancerConfig *LoadBalancerConfig `json:"loadBalancerConfig,omitempty"`
}

type KubernetesRoleProperties

type KubernetesRoleProperties struct {
	HostPlatform            PlatformType            `json:"hostPlatform"`
	HostPlatformType        *HostPlatformType       `json:"hostPlatformType,omitempty"`
	KubernetesClusterInfo   KubernetesClusterInfo   `json:"kubernetesClusterInfo"`
	KubernetesRoleResources KubernetesRoleResources `json:"kubernetesRoleResources"`
	ProvisioningState       *KubernetesState        `json:"provisioningState,omitempty"`
	RoleStatus              RoleStatus              `json:"roleStatus"`
}

type KubernetesRoleResources

type KubernetesRoleResources struct {
	Compute KubernetesRoleCompute  `json:"compute"`
	Network *KubernetesRoleNetwork `json:"network,omitempty"`
	Storage *KubernetesRoleStorage `json:"storage,omitempty"`
}

type KubernetesRoleStorage

type KubernetesRoleStorage struct {
	Endpoints      *[]MountPointMap                  `json:"endpoints,omitempty"`
	StorageClasses *[]KubernetesRoleStorageClassInfo `json:"storageClasses,omitempty"`
}

type KubernetesRoleStorageClassInfo

type KubernetesRoleStorageClassInfo struct {
	Name           *string                `json:"name,omitempty"`
	PosixCompliant *PosixComplianceStatus `json:"posixCompliant,omitempty"`
	Type           *string                `json:"type,omitempty"`
}

type KubernetesState

type KubernetesState string
const (
	KubernetesStateCreated       KubernetesState = "Created"
	KubernetesStateCreating      KubernetesState = "Creating"
	KubernetesStateDeleting      KubernetesState = "Deleting"
	KubernetesStateFailed        KubernetesState = "Failed"
	KubernetesStateInvalid       KubernetesState = "Invalid"
	KubernetesStateReconfiguring KubernetesState = "Reconfiguring"
	KubernetesStateUpdating      KubernetesState = "Updating"
)

func (*KubernetesState) UnmarshalJSON

func (s *KubernetesState) UnmarshalJSON(bytes []byte) error

type ListByDataBoxEdgeDeviceCompleteResult

type ListByDataBoxEdgeDeviceCompleteResult struct {
	LatestHttpResponse *http.Response
	Items              []Role
}

type ListByDataBoxEdgeDeviceOperationResponse

type ListByDataBoxEdgeDeviceOperationResponse struct {
	HttpResponse *http.Response
	OData        *odata.OData
	Model        *[]Role
}

type LoadBalancerConfig

type LoadBalancerConfig struct {
	IPRange *[]string `json:"ipRange,omitempty"`
	Type    *string   `json:"type,omitempty"`
	Version *string   `json:"version,omitempty"`
}

type MECRole

type MECRole struct {
	Properties *MECRoleProperties `json:"properties,omitempty"`

	// Fields inherited from Role
	Id         *string                `json:"id,omitempty"`
	Name       *string                `json:"name,omitempty"`
	SystemData *systemdata.SystemData `json:"systemData,omitempty"`
	Type       *string                `json:"type,omitempty"`
}

func (MECRole) MarshalJSON

func (s MECRole) MarshalJSON() ([]byte, error)

type MECRoleProperties

type MECRoleProperties struct {
	ConnectionString   *AsymmetricEncryptedSecret `json:"connectionString,omitempty"`
	ControllerEndpoint *string                    `json:"controllerEndpoint,omitempty"`
	ResourceUniqueId   *string                    `json:"resourceUniqueId,omitempty"`
	RoleStatus         RoleStatus                 `json:"roleStatus"`
}

type MountPointMap

type MountPointMap struct {
	MountPoint *string    `json:"mountPoint,omitempty"`
	MountType  *MountType `json:"mountType,omitempty"`
	RoleId     *string    `json:"roleId,omitempty"`
	RoleType   *RoleTypes `json:"roleType,omitempty"`
	ShareId    string     `json:"shareId"`
}

type MountType

type MountType string
const (
	MountTypeHostPath MountType = "HostPath"
	MountTypeVolume   MountType = "Volume"
)

func (*MountType) UnmarshalJSON

func (s *MountType) UnmarshalJSON(bytes []byte) error

type NodeInfo

type NodeInfo struct {
	IPConfiguration *[]KubernetesIPConfiguration `json:"ipConfiguration,omitempty"`
	Name            *string                      `json:"name,omitempty"`
	Type            *KubernetesNodeType          `json:"type,omitempty"`
}

type PlatformType

type PlatformType string
const (
	PlatformTypeLinux   PlatformType = "Linux"
	PlatformTypeWindows PlatformType = "Windows"
)

func (*PlatformType) UnmarshalJSON

func (s *PlatformType) UnmarshalJSON(bytes []byte) error

type PosixComplianceStatus

type PosixComplianceStatus string
const (
	PosixComplianceStatusDisabled PosixComplianceStatus = "Disabled"
	PosixComplianceStatusEnabled  PosixComplianceStatus = "Enabled"
	PosixComplianceStatusInvalid  PosixComplianceStatus = "Invalid"
)

func (*PosixComplianceStatus) UnmarshalJSON

func (s *PosixComplianceStatus) UnmarshalJSON(bytes []byte) error

type RawRoleImpl

type RawRoleImpl struct {
	Type   string
	Values map[string]interface{}
}

RawRoleImpl is returned when the Discriminated Value doesn't match any of the defined types NOTE: this should only be used when a type isn't defined for this type of Object (as a workaround) and is used only for Deserialization (e.g. this cannot be used as a Request Payload).

type Role

type Role interface {
}

type RoleId

type RoleId struct {
	SubscriptionId        string
	ResourceGroupName     string
	DataBoxEdgeDeviceName string
	RoleName              string
}

RoleId is a struct representing the Resource ID for a Role

func NewRoleID

func NewRoleID(subscriptionId string, resourceGroupName string, dataBoxEdgeDeviceName string, roleName string) RoleId

NewRoleID returns a new RoleId struct

func ParseRoleID

func ParseRoleID(input string) (*RoleId, error)

ParseRoleID parses 'input' into a RoleId

func ParseRoleIDInsensitively

func ParseRoleIDInsensitively(input string) (*RoleId, error)

ParseRoleIDInsensitively parses 'input' case-insensitively into a RoleId note: this method should only be used for API response data and not user input

func (*RoleId) FromParseResult

func (id *RoleId) FromParseResult(input resourceids.ParseResult) error

func (RoleId) ID

func (id RoleId) ID() string

ID returns the formatted Role ID

func (RoleId) Segments

func (id RoleId) Segments() []resourceids.Segment

Segments returns a slice of Resource ID Segments which comprise this Role ID

func (RoleId) String

func (id RoleId) String() string

String returns a human-readable description of this Role ID

type RoleOperationPredicate

type RoleOperationPredicate struct {
}

func (RoleOperationPredicate) Matches

func (p RoleOperationPredicate) Matches(input Role) bool

type RoleStatus

type RoleStatus string
const (
	RoleStatusDisabled RoleStatus = "Disabled"
	RoleStatusEnabled  RoleStatus = "Enabled"
)

func (*RoleStatus) UnmarshalJSON

func (s *RoleStatus) UnmarshalJSON(bytes []byte) error

type RoleTypes

type RoleTypes string
const (
	RoleTypesASA                 RoleTypes = "ASA"
	RoleTypesCloudEdgeManagement RoleTypes = "CloudEdgeManagement"
	RoleTypesCognitive           RoleTypes = "Cognitive"
	RoleTypesFunctions           RoleTypes = "Functions"
	RoleTypesIOT                 RoleTypes = "IOT"
	RoleTypesKubernetes          RoleTypes = "Kubernetes"
	RoleTypesMEC                 RoleTypes = "MEC"
)

func (*RoleTypes) UnmarshalJSON

func (s *RoleTypes) UnmarshalJSON(bytes []byte) error

type RolesClient

type RolesClient struct {
	Client *resourcemanager.Client
}

func NewRolesClientWithBaseURI

func NewRolesClientWithBaseURI(sdkApi sdkEnv.Api) (*RolesClient, error)

func (RolesClient) CreateOrUpdate

func (c RolesClient) CreateOrUpdate(ctx context.Context, id RoleId, input Role) (result CreateOrUpdateOperationResponse, err error)

CreateOrUpdate ...

func (RolesClient) CreateOrUpdateThenPoll

func (c RolesClient) CreateOrUpdateThenPoll(ctx context.Context, id RoleId, input Role) error

CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed

func (RolesClient) Delete

func (c RolesClient) Delete(ctx context.Context, id RoleId) (result DeleteOperationResponse, err error)

Delete ...

func (RolesClient) DeleteThenPoll

func (c RolesClient) DeleteThenPoll(ctx context.Context, id RoleId) error

DeleteThenPoll performs Delete then polls until it's completed

func (RolesClient) Get

func (c RolesClient) Get(ctx context.Context, id RoleId) (result GetOperationResponse, err error)

Get ...

func (RolesClient) ListByDataBoxEdgeDevice

func (c RolesClient) ListByDataBoxEdgeDevice(ctx context.Context, id DataBoxEdgeDeviceId) (result ListByDataBoxEdgeDeviceOperationResponse, err error)

ListByDataBoxEdgeDevice ...

func (RolesClient) ListByDataBoxEdgeDeviceComplete

func (c RolesClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, id DataBoxEdgeDeviceId) (ListByDataBoxEdgeDeviceCompleteResult, error)

ListByDataBoxEdgeDeviceComplete retrieves all the results into a single object

func (RolesClient) ListByDataBoxEdgeDeviceCompleteMatchingPredicate

func (c RolesClient) ListByDataBoxEdgeDeviceCompleteMatchingPredicate(ctx context.Context, id DataBoxEdgeDeviceId, predicate RoleOperationPredicate) (result ListByDataBoxEdgeDeviceCompleteResult, err error)

ListByDataBoxEdgeDeviceCompleteMatchingPredicate retrieves all the results and then applies the predicate

type SubscriptionProperties

type SubscriptionProperties struct {
	LocationPlacementId *string                           `json:"locationPlacementId,omitempty"`
	QuotaId             *string                           `json:"quotaId,omitempty"`
	RegisteredFeatures  *[]SubscriptionRegisteredFeatures `json:"registeredFeatures,omitempty"`
	SerializedDetails   *string                           `json:"serializedDetails,omitempty"`
	TenantId            *string                           `json:"tenantId,omitempty"`
}

type SubscriptionRegisteredFeatures

type SubscriptionRegisteredFeatures struct {
	Name  *string `json:"name,omitempty"`
	State *string `json:"state,omitempty"`
}

type SubscriptionState

type SubscriptionState string
const (
	SubscriptionStateDeleted      SubscriptionState = "Deleted"
	SubscriptionStateRegistered   SubscriptionState = "Registered"
	SubscriptionStateSuspended    SubscriptionState = "Suspended"
	SubscriptionStateUnregistered SubscriptionState = "Unregistered"
	SubscriptionStateWarned       SubscriptionState = "Warned"
)

func (*SubscriptionState) UnmarshalJSON

func (s *SubscriptionState) UnmarshalJSON(bytes []byte) error

type SymmetricKey

type SymmetricKey struct {
	ConnectionString *AsymmetricEncryptedSecret `json:"connectionString,omitempty"`
}

Jump to

Keyboard shortcuts

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