backupcrrjobs

package
v0.20240411.1145857 Latest Latest
Warning

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

Go to latest
Published: Apr 11, 2024 License: MPL-2.0 Imports: 11 Imported by: 0

README

github.com/hashicorp/go-azure-sdk/resource-manager/recoveryservicesbackup/2023-01-15/backupcrrjobs Documentation

The backupcrrjobs SDK allows for interaction with the Azure Resource Manager Service recoveryservicesbackup (API Version 2023-01-15).

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/recoveryservicesbackup/2023-01-15/backupcrrjobs"

Client Initialization

client := backupcrrjobs.NewBackupCrrJobsClientWithBaseURI("https://management.azure.com")
client.Client.Authorizer = authorizer

Example Usage: BackupCrrJobsClient.List

ctx := context.TODO()
id := backupcrrjobs.NewLocationID("12345678-1234-9876-4563-123456789012", "locationValue")

payload := backupcrrjobs.CrrJobRequest{
	// ...
}


// alternatively `client.List(ctx, id, payload, backupcrrjobs.DefaultListOperationOptions())` can be used to do batched pagination
items, err := client.ListComplete(ctx, id, payload, backupcrrjobs.DefaultListOperationOptions())
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 PossibleValuesForBackupManagementType

func PossibleValuesForBackupManagementType() []string

func PossibleValuesForJobSupportedAction

func PossibleValuesForJobSupportedAction() []string

func PossibleValuesForMabServerType

func PossibleValuesForMabServerType() []string

func PossibleValuesForWorkloadType

func PossibleValuesForWorkloadType() []string

func ValidateLocationID

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

ValidateLocationID checks that 'input' can be parsed as a Location ID

Types

type AzureIaaSVMErrorInfo

type AzureIaaSVMErrorInfo struct {
	ErrorCode       *int64    `json:"errorCode,omitempty"`
	ErrorString     *string   `json:"errorString,omitempty"`
	ErrorTitle      *string   `json:"errorTitle,omitempty"`
	Recommendations *[]string `json:"recommendations,omitempty"`
}

type AzureIaaSVMJob

type AzureIaaSVMJob struct {
	ActionsInfo           *[]JobSupportedAction       `json:"actionsInfo,omitempty"`
	Duration              *string                     `json:"duration,omitempty"`
	ErrorDetails          *[]AzureIaaSVMErrorInfo     `json:"errorDetails,omitempty"`
	ExtendedInfo          *AzureIaaSVMJobExtendedInfo `json:"extendedInfo,omitempty"`
	VirtualMachineVersion *string                     `json:"virtualMachineVersion,omitempty"`

	// Fields inherited from Job
	ActivityId           *string               `json:"activityId,omitempty"`
	BackupManagementType *BackupManagementType `json:"backupManagementType,omitempty"`
	EndTime              *string               `json:"endTime,omitempty"`
	EntityFriendlyName   *string               `json:"entityFriendlyName,omitempty"`
	Operation            *string               `json:"operation,omitempty"`
	StartTime            *string               `json:"startTime,omitempty"`
	Status               *string               `json:"status,omitempty"`
}

func (*AzureIaaSVMJob) GetEndTimeAsTime

func (o *AzureIaaSVMJob) GetEndTimeAsTime() (*time.Time, error)

func (*AzureIaaSVMJob) GetStartTimeAsTime

func (o *AzureIaaSVMJob) GetStartTimeAsTime() (*time.Time, error)

func (AzureIaaSVMJob) MarshalJSON

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

func (*AzureIaaSVMJob) SetEndTimeAsTime

func (o *AzureIaaSVMJob) SetEndTimeAsTime(input time.Time)

func (*AzureIaaSVMJob) SetStartTimeAsTime

func (o *AzureIaaSVMJob) SetStartTimeAsTime(input time.Time)

type AzureIaaSVMJobExtendedInfo

type AzureIaaSVMJobExtendedInfo struct {
	DynamicErrorMessage        *string                      `json:"dynamicErrorMessage,omitempty"`
	EstimatedRemainingDuration *string                      `json:"estimatedRemainingDuration,omitempty"`
	InternalPropertyBag        *map[string]string           `json:"internalPropertyBag,omitempty"`
	ProgressPercentage         *float64                     `json:"progressPercentage,omitempty"`
	PropertyBag                *map[string]string           `json:"propertyBag,omitempty"`
	TasksList                  *[]AzureIaaSVMJobTaskDetails `json:"tasksList,omitempty"`
}

type AzureIaaSVMJobTaskDetails

type AzureIaaSVMJobTaskDetails struct {
	Duration             *string  `json:"duration,omitempty"`
	EndTime              *string  `json:"endTime,omitempty"`
	InstanceId           *string  `json:"instanceId,omitempty"`
	ProgressPercentage   *float64 `json:"progressPercentage,omitempty"`
	StartTime            *string  `json:"startTime,omitempty"`
	Status               *string  `json:"status,omitempty"`
	TaskExecutionDetails *string  `json:"taskExecutionDetails,omitempty"`
	TaskId               *string  `json:"taskId,omitempty"`
}

func (*AzureIaaSVMJobTaskDetails) GetEndTimeAsTime

func (o *AzureIaaSVMJobTaskDetails) GetEndTimeAsTime() (*time.Time, error)

func (*AzureIaaSVMJobTaskDetails) GetStartTimeAsTime

func (o *AzureIaaSVMJobTaskDetails) GetStartTimeAsTime() (*time.Time, error)

func (*AzureIaaSVMJobTaskDetails) SetEndTimeAsTime

func (o *AzureIaaSVMJobTaskDetails) SetEndTimeAsTime(input time.Time)

func (*AzureIaaSVMJobTaskDetails) SetStartTimeAsTime

func (o *AzureIaaSVMJobTaskDetails) SetStartTimeAsTime(input time.Time)

type AzureStorageErrorInfo

type AzureStorageErrorInfo struct {
	ErrorCode       *int64    `json:"errorCode,omitempty"`
	ErrorString     *string   `json:"errorString,omitempty"`
	Recommendations *[]string `json:"recommendations,omitempty"`
}

type AzureStorageJob

type AzureStorageJob struct {
	ActionsInfo           *[]JobSupportedAction        `json:"actionsInfo,omitempty"`
	Duration              *string                      `json:"duration,omitempty"`
	ErrorDetails          *[]AzureStorageErrorInfo     `json:"errorDetails,omitempty"`
	ExtendedInfo          *AzureStorageJobExtendedInfo `json:"extendedInfo,omitempty"`
	StorageAccountName    *string                      `json:"storageAccountName,omitempty"`
	StorageAccountVersion *string                      `json:"storageAccountVersion,omitempty"`

	// Fields inherited from Job
	ActivityId           *string               `json:"activityId,omitempty"`
	BackupManagementType *BackupManagementType `json:"backupManagementType,omitempty"`
	EndTime              *string               `json:"endTime,omitempty"`
	EntityFriendlyName   *string               `json:"entityFriendlyName,omitempty"`
	Operation            *string               `json:"operation,omitempty"`
	StartTime            *string               `json:"startTime,omitempty"`
	Status               *string               `json:"status,omitempty"`
}

func (*AzureStorageJob) GetEndTimeAsTime

func (o *AzureStorageJob) GetEndTimeAsTime() (*time.Time, error)

func (*AzureStorageJob) GetStartTimeAsTime

func (o *AzureStorageJob) GetStartTimeAsTime() (*time.Time, error)

func (AzureStorageJob) MarshalJSON

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

func (*AzureStorageJob) SetEndTimeAsTime

func (o *AzureStorageJob) SetEndTimeAsTime(input time.Time)

func (*AzureStorageJob) SetStartTimeAsTime

func (o *AzureStorageJob) SetStartTimeAsTime(input time.Time)

type AzureStorageJobExtendedInfo

type AzureStorageJobExtendedInfo struct {
	DynamicErrorMessage *string                       `json:"dynamicErrorMessage,omitempty"`
	PropertyBag         *map[string]string            `json:"propertyBag,omitempty"`
	TasksList           *[]AzureStorageJobTaskDetails `json:"tasksList,omitempty"`
}

type AzureStorageJobTaskDetails

type AzureStorageJobTaskDetails struct {
	Status *string `json:"status,omitempty"`
	TaskId *string `json:"taskId,omitempty"`
}

type AzureWorkloadErrorInfo

type AzureWorkloadErrorInfo struct {
	AdditionalDetails *string   `json:"additionalDetails,omitempty"`
	ErrorCode         *int64    `json:"errorCode,omitempty"`
	ErrorString       *string   `json:"errorString,omitempty"`
	ErrorTitle        *string   `json:"errorTitle,omitempty"`
	Recommendations   *[]string `json:"recommendations,omitempty"`
}

type AzureWorkloadJob

type AzureWorkloadJob struct {
	ActionsInfo  *[]JobSupportedAction         `json:"actionsInfo,omitempty"`
	Duration     *string                       `json:"duration,omitempty"`
	ErrorDetails *[]AzureWorkloadErrorInfo     `json:"errorDetails,omitempty"`
	ExtendedInfo *AzureWorkloadJobExtendedInfo `json:"extendedInfo,omitempty"`
	WorkloadType *string                       `json:"workloadType,omitempty"`

	// Fields inherited from Job
	ActivityId           *string               `json:"activityId,omitempty"`
	BackupManagementType *BackupManagementType `json:"backupManagementType,omitempty"`
	EndTime              *string               `json:"endTime,omitempty"`
	EntityFriendlyName   *string               `json:"entityFriendlyName,omitempty"`
	Operation            *string               `json:"operation,omitempty"`
	StartTime            *string               `json:"startTime,omitempty"`
	Status               *string               `json:"status,omitempty"`
}

func (*AzureWorkloadJob) GetEndTimeAsTime

func (o *AzureWorkloadJob) GetEndTimeAsTime() (*time.Time, error)

func (*AzureWorkloadJob) GetStartTimeAsTime

func (o *AzureWorkloadJob) GetStartTimeAsTime() (*time.Time, error)

func (AzureWorkloadJob) MarshalJSON

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

func (*AzureWorkloadJob) SetEndTimeAsTime

func (o *AzureWorkloadJob) SetEndTimeAsTime(input time.Time)

func (*AzureWorkloadJob) SetStartTimeAsTime

func (o *AzureWorkloadJob) SetStartTimeAsTime(input time.Time)

type AzureWorkloadJobExtendedInfo

type AzureWorkloadJobExtendedInfo struct {
	DynamicErrorMessage *string                        `json:"dynamicErrorMessage,omitempty"`
	PropertyBag         *map[string]string             `json:"propertyBag,omitempty"`
	TasksList           *[]AzureWorkloadJobTaskDetails `json:"tasksList,omitempty"`
}

type AzureWorkloadJobTaskDetails

type AzureWorkloadJobTaskDetails struct {
	Status *string `json:"status,omitempty"`
	TaskId *string `json:"taskId,omitempty"`
}

type BackupCrrJobsClient

type BackupCrrJobsClient struct {
	Client autorest.Client
	// contains filtered or unexported fields
}

func NewBackupCrrJobsClientWithBaseURI

func NewBackupCrrJobsClientWithBaseURI(endpoint string) BackupCrrJobsClient

func (BackupCrrJobsClient) List

List ...

func (BackupCrrJobsClient) ListComplete

ListComplete retrieves all of the results into a single object

func (BackupCrrJobsClient) ListCompleteMatchingPredicate

func (c BackupCrrJobsClient) ListCompleteMatchingPredicate(ctx context.Context, id LocationId, input CrrJobRequest, options ListOperationOptions, predicate JobResourceOperationPredicate) (resp ListCompleteResult, err error)

ListCompleteMatchingPredicate retrieves all of the results and then applied the predicate

type BackupManagementType

type BackupManagementType string
const (
	BackupManagementTypeAzureBackupServer BackupManagementType = "AzureBackupServer"
	BackupManagementTypeAzureIaasVM       BackupManagementType = "AzureIaasVM"
	BackupManagementTypeAzureSql          BackupManagementType = "AzureSql"
	BackupManagementTypeAzureStorage      BackupManagementType = "AzureStorage"
	BackupManagementTypeAzureWorkload     BackupManagementType = "AzureWorkload"
	BackupManagementTypeDPM               BackupManagementType = "DPM"
	BackupManagementTypeDefaultBackup     BackupManagementType = "DefaultBackup"
	BackupManagementTypeInvalid           BackupManagementType = "Invalid"
	BackupManagementTypeMAB               BackupManagementType = "MAB"
)

type CrrJobRequest

type CrrJobRequest struct {
	JobName    *string `json:"jobName,omitempty"`
	ResourceId *string `json:"resourceId,omitempty"`
}

type DpmErrorInfo

type DpmErrorInfo struct {
	ErrorString     *string   `json:"errorString,omitempty"`
	Recommendations *[]string `json:"recommendations,omitempty"`
}

type DpmJob

type DpmJob struct {
	ActionsInfo   *[]JobSupportedAction `json:"actionsInfo,omitempty"`
	ContainerName *string               `json:"containerName,omitempty"`
	ContainerType *string               `json:"containerType,omitempty"`
	DpmServerName *string               `json:"dpmServerName,omitempty"`
	Duration      *string               `json:"duration,omitempty"`
	ErrorDetails  *[]DpmErrorInfo       `json:"errorDetails,omitempty"`
	ExtendedInfo  *DpmJobExtendedInfo   `json:"extendedInfo,omitempty"`
	WorkloadType  *string               `json:"workloadType,omitempty"`

	// Fields inherited from Job
	ActivityId           *string               `json:"activityId,omitempty"`
	BackupManagementType *BackupManagementType `json:"backupManagementType,omitempty"`
	EndTime              *string               `json:"endTime,omitempty"`
	EntityFriendlyName   *string               `json:"entityFriendlyName,omitempty"`
	Operation            *string               `json:"operation,omitempty"`
	StartTime            *string               `json:"startTime,omitempty"`
	Status               *string               `json:"status,omitempty"`
}

func (*DpmJob) GetEndTimeAsTime

func (o *DpmJob) GetEndTimeAsTime() (*time.Time, error)

func (*DpmJob) GetStartTimeAsTime

func (o *DpmJob) GetStartTimeAsTime() (*time.Time, error)

func (DpmJob) MarshalJSON

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

func (*DpmJob) SetEndTimeAsTime

func (o *DpmJob) SetEndTimeAsTime(input time.Time)

func (*DpmJob) SetStartTimeAsTime

func (o *DpmJob) SetStartTimeAsTime(input time.Time)

type DpmJobExtendedInfo

type DpmJobExtendedInfo struct {
	DynamicErrorMessage *string              `json:"dynamicErrorMessage,omitempty"`
	PropertyBag         *map[string]string   `json:"propertyBag,omitempty"`
	TasksList           *[]DpmJobTaskDetails `json:"tasksList,omitempty"`
}

type DpmJobTaskDetails

type DpmJobTaskDetails struct {
	Duration  *string `json:"duration,omitempty"`
	EndTime   *string `json:"endTime,omitempty"`
	StartTime *string `json:"startTime,omitempty"`
	Status    *string `json:"status,omitempty"`
	TaskId    *string `json:"taskId,omitempty"`
}

func (*DpmJobTaskDetails) GetEndTimeAsTime

func (o *DpmJobTaskDetails) GetEndTimeAsTime() (*time.Time, error)

func (*DpmJobTaskDetails) GetStartTimeAsTime

func (o *DpmJobTaskDetails) GetStartTimeAsTime() (*time.Time, error)

func (*DpmJobTaskDetails) SetEndTimeAsTime

func (o *DpmJobTaskDetails) SetEndTimeAsTime(input time.Time)

func (*DpmJobTaskDetails) SetStartTimeAsTime

func (o *DpmJobTaskDetails) SetStartTimeAsTime(input time.Time)

type Job

type Job interface {
}

type JobResource

type JobResource struct {
	ETag       *string            `json:"eTag,omitempty"`
	Id         *string            `json:"id,omitempty"`
	Location   *string            `json:"location,omitempty"`
	Name       *string            `json:"name,omitempty"`
	Properties Job                `json:"properties"`
	Tags       *map[string]string `json:"tags,omitempty"`
	Type       *string            `json:"type,omitempty"`
}

func (*JobResource) UnmarshalJSON

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

type JobResourceOperationPredicate

type JobResourceOperationPredicate struct {
	ETag     *string
	Id       *string
	Location *string
	Name     *string
	Type     *string
}

func (JobResourceOperationPredicate) Matches

type JobSupportedAction

type JobSupportedAction string
const (
	JobSupportedActionCancellable JobSupportedAction = "Cancellable"
	JobSupportedActionInvalid     JobSupportedAction = "Invalid"
	JobSupportedActionRetriable   JobSupportedAction = "Retriable"
)

type ListCompleteResult

type ListCompleteResult struct {
	Items []JobResource
}

type ListOperationOptions

type ListOperationOptions struct {
	Filter *string
}

func DefaultListOperationOptions

func DefaultListOperationOptions() ListOperationOptions

type ListOperationResponse

type ListOperationResponse struct {
	HttpResponse *http.Response
	Model        *[]JobResource
	// contains filtered or unexported fields
}

func (ListOperationResponse) HasMore

func (r ListOperationResponse) HasMore() bool

func (ListOperationResponse) LoadMore

func (r ListOperationResponse) LoadMore(ctx context.Context) (resp ListOperationResponse, err error)

type LocationId

type LocationId struct {
	SubscriptionId string
	LocationName   string
}

LocationId is a struct representing the Resource ID for a Location

func NewLocationID

func NewLocationID(subscriptionId string, locationName string) LocationId

NewLocationID returns a new LocationId struct

func ParseLocationID

func ParseLocationID(input string) (*LocationId, error)

ParseLocationID parses 'input' into a LocationId

func ParseLocationIDInsensitively

func ParseLocationIDInsensitively(input string) (*LocationId, error)

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

func (*LocationId) FromParseResult

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

func (LocationId) ID

func (id LocationId) ID() string

ID returns the formatted Location ID

func (LocationId) Segments

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

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

func (LocationId) String

func (id LocationId) String() string

String returns a human-readable description of this Location ID

type MabErrorInfo

type MabErrorInfo struct {
	ErrorString     *string   `json:"errorString,omitempty"`
	Recommendations *[]string `json:"recommendations,omitempty"`
}

type MabJob

type MabJob struct {
	ActionsInfo   *[]JobSupportedAction `json:"actionsInfo,omitempty"`
	Duration      *string               `json:"duration,omitempty"`
	ErrorDetails  *[]MabErrorInfo       `json:"errorDetails,omitempty"`
	ExtendedInfo  *MabJobExtendedInfo   `json:"extendedInfo,omitempty"`
	MabServerName *string               `json:"mabServerName,omitempty"`
	MabServerType *MabServerType        `json:"mabServerType,omitempty"`
	WorkloadType  *WorkloadType         `json:"workloadType,omitempty"`

	// Fields inherited from Job
	ActivityId           *string               `json:"activityId,omitempty"`
	BackupManagementType *BackupManagementType `json:"backupManagementType,omitempty"`
	EndTime              *string               `json:"endTime,omitempty"`
	EntityFriendlyName   *string               `json:"entityFriendlyName,omitempty"`
	Operation            *string               `json:"operation,omitempty"`
	StartTime            *string               `json:"startTime,omitempty"`
	Status               *string               `json:"status,omitempty"`
}

func (*MabJob) GetEndTimeAsTime

func (o *MabJob) GetEndTimeAsTime() (*time.Time, error)

func (*MabJob) GetStartTimeAsTime

func (o *MabJob) GetStartTimeAsTime() (*time.Time, error)

func (MabJob) MarshalJSON

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

func (*MabJob) SetEndTimeAsTime

func (o *MabJob) SetEndTimeAsTime(input time.Time)

func (*MabJob) SetStartTimeAsTime

func (o *MabJob) SetStartTimeAsTime(input time.Time)

type MabJobExtendedInfo

type MabJobExtendedInfo struct {
	DynamicErrorMessage *string              `json:"dynamicErrorMessage,omitempty"`
	PropertyBag         *map[string]string   `json:"propertyBag,omitempty"`
	TasksList           *[]MabJobTaskDetails `json:"tasksList,omitempty"`
}

type MabJobTaskDetails

type MabJobTaskDetails struct {
	Duration  *string `json:"duration,omitempty"`
	EndTime   *string `json:"endTime,omitempty"`
	StartTime *string `json:"startTime,omitempty"`
	Status    *string `json:"status,omitempty"`
	TaskId    *string `json:"taskId,omitempty"`
}

func (*MabJobTaskDetails) GetEndTimeAsTime

func (o *MabJobTaskDetails) GetEndTimeAsTime() (*time.Time, error)

func (*MabJobTaskDetails) GetStartTimeAsTime

func (o *MabJobTaskDetails) GetStartTimeAsTime() (*time.Time, error)

func (*MabJobTaskDetails) SetEndTimeAsTime

func (o *MabJobTaskDetails) SetEndTimeAsTime(input time.Time)

func (*MabJobTaskDetails) SetStartTimeAsTime

func (o *MabJobTaskDetails) SetStartTimeAsTime(input time.Time)

type MabServerType

type MabServerType string
const (
	MabServerTypeAzureBackupServerContainer MabServerType = "AzureBackupServerContainer"
	MabServerTypeAzureSqlContainer          MabServerType = "AzureSqlContainer"
	MabServerTypeCluster                    MabServerType = "Cluster"
	MabServerTypeDPMContainer               MabServerType = "DPMContainer"
	MabServerTypeGenericContainer           MabServerType = "GenericContainer"
	MabServerTypeIaasVMContainer            MabServerType = "IaasVMContainer"
	MabServerTypeIaasVMServiceContainer     MabServerType = "IaasVMServiceContainer"
	MabServerTypeInvalid                    MabServerType = "Invalid"
	MabServerTypeMABContainer               MabServerType = "MABContainer"
	MabServerTypeSQLAGWorkLoadContainer     MabServerType = "SQLAGWorkLoadContainer"
	MabServerTypeStorageContainer           MabServerType = "StorageContainer"
	MabServerTypeUnknown                    MabServerType = "Unknown"
	MabServerTypeVCenter                    MabServerType = "VCenter"
	MabServerTypeVMAppContainer             MabServerType = "VMAppContainer"
	MabServerTypeWindows                    MabServerType = "Windows"
)

type RawJobImpl

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

RawJobImpl 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 WorkloadType

type WorkloadType string
const (
	WorkloadTypeAzureFileShare    WorkloadType = "AzureFileShare"
	WorkloadTypeAzureSqlDb        WorkloadType = "AzureSqlDb"
	WorkloadTypeClient            WorkloadType = "Client"
	WorkloadTypeExchange          WorkloadType = "Exchange"
	WorkloadTypeFileFolder        WorkloadType = "FileFolder"
	WorkloadTypeGenericDataSource WorkloadType = "GenericDataSource"
	WorkloadTypeInvalid           WorkloadType = "Invalid"
	WorkloadTypeSAPAseDatabase    WorkloadType = "SAPAseDatabase"
	WorkloadTypeSAPHanaDatabase   WorkloadType = "SAPHanaDatabase"
	WorkloadTypeSQLDB             WorkloadType = "SQLDB"
	WorkloadTypeSQLDataBase       WorkloadType = "SQLDataBase"
	WorkloadTypeSharepoint        WorkloadType = "Sharepoint"
	WorkloadTypeSystemState       WorkloadType = "SystemState"
	WorkloadTypeVM                WorkloadType = "VM"
	WorkloadTypeVMwareVM          WorkloadType = "VMwareVM"
)

Jump to

Keyboard shortcuts

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