gen

package
v0.0.0-...-9d9ea44 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package gen provides primitives to interact with the openapi HTTP API.

Code generated by github.com/deepmap/oapi-codegen/v2 version v2.1.0 DO NOT EDIT.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewGetHealthRequest

func NewGetHealthRequest(server string, body GetHealthJSONRequestBody) (*http.Request, error)

NewGetHealthRequest calls the generic GetHealth builder with application/json body

func NewGetHealthRequestWithBody

func NewGetHealthRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewGetHealthRequestWithBody generates requests for GetHealth with any type of body

func NewListGPUProvidersRequest

func NewListGPUProvidersRequest(server string, body ListGPUProvidersJSONRequestBody) (*http.Request, error)

NewListGPUProvidersRequest calls the generic ListGPUProviders builder with application/json body

func NewListGPUProvidersRequestWithBody

func NewListGPUProvidersRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewListGPUProvidersRequestWithBody generates requests for ListGPUProviders with any type of body

func NewListPendingTasksRequest

func NewListPendingTasksRequest(server string, body ListPendingTasksJSONRequestBody) (*http.Request, error)

NewListPendingTasksRequest calls the generic ListPendingTasks builder with application/json body

func NewListPendingTasksRequestWithBody

func NewListPendingTasksRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewListPendingTasksRequestWithBody generates requests for ListPendingTasks with any type of body

func NewOfferTaskRequest

func NewOfferTaskRequest(server string, body OfferTaskJSONRequestBody) (*http.Request, error)

NewOfferTaskRequest calls the generic OfferTask builder with application/json body

func NewOfferTaskRequestWithBody

func NewOfferTaskRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewOfferTaskRequestWithBody generates requests for OfferTask with any type of body

func NewSubmitTaskResultRequest

func NewSubmitTaskResultRequest(server string, body SubmitTaskResultJSONRequestBody) (*http.Request, error)

NewSubmitTaskResultRequest calls the generic SubmitTaskResult builder with application/json body

func NewSubmitTaskResultRequestWithBody

func NewSubmitTaskResultRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewSubmitTaskResultRequestWithBody generates requests for SubmitTaskResult with any type of body

Types

type CPUInfo

type CPUInfo struct {
	CountLogical  *int    `json:"count logical,omitempty"`
	CountPhysical *int    `json:"count physical,omitempty"`
	Model         *string `json:"model,omitempty"`
}

CPUInfo defines model for CPUInfo.

type Client

type Client struct {
	// The endpoint of the server conforming to this interface, with scheme,
	// https://api.deepmap.com for example. This can contain a path relative
	// to the server, such as https://api.deepmap.com/dev-test, and all the
	// paths in the swagger spec will be appended to the server.
	Server string

	// Doer for performing requests, typically a *http.Client with any
	// customized settings, such as certificate chains.
	Client HttpRequestDoer

	// A list of callbacks for modifying requests which are generated before sending over
	// the network.
	RequestEditors []RequestEditorFn
}

Client which conforms to the OpenAPI3 specification for this service.

func NewClient

func NewClient(server string, opts ...ClientOption) (*Client, error)

Creates a new Client, with reasonable defaults

func (*Client) GetHealth

func (c *Client) GetHealth(ctx context.Context, body GetHealthJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetHealthWithBody

func (c *Client) GetHealthWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListGPUProviders

func (c *Client) ListGPUProviders(ctx context.Context, body ListGPUProvidersJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListGPUProvidersWithBody

func (c *Client) ListGPUProvidersWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListPendingTasks

func (c *Client) ListPendingTasks(ctx context.Context, body ListPendingTasksJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) ListPendingTasksWithBody

func (c *Client) ListPendingTasksWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) OfferTask

func (c *Client) OfferTask(ctx context.Context, body OfferTaskJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) OfferTaskWithBody

func (c *Client) OfferTaskWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) SubmitTaskResult

func (c *Client) SubmitTaskResult(ctx context.Context, body SubmitTaskResultJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) SubmitTaskResultWithBody

func (c *Client) SubmitTaskResultWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

type ClientInterface

type ClientInterface interface {
	// GetHealthWithBody request with any body
	GetHealthWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	GetHealth(ctx context.Context, body GetHealthJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListGPUProvidersWithBody request with any body
	ListGPUProvidersWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	ListGPUProviders(ctx context.Context, body ListGPUProvidersJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// ListPendingTasksWithBody request with any body
	ListPendingTasksWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	ListPendingTasks(ctx context.Context, body ListPendingTasksJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// OfferTaskWithBody request with any body
	OfferTaskWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	OfferTask(ctx context.Context, body OfferTaskJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// SubmitTaskResultWithBody request with any body
	SubmitTaskResultWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	SubmitTaskResult(ctx context.Context, body SubmitTaskResultJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
}

The interface specification for the client above.

type ClientOption

type ClientOption func(*Client) error

ClientOption allows setting custom parameters during construction

func WithBaseURL

func WithBaseURL(baseURL string) ClientOption

WithBaseURL overrides the baseURL.

func WithHTTPClient

func WithHTTPClient(doer HttpRequestDoer) ClientOption

WithHTTPClient allows overriding the default Doer, which is automatically created using http.Client. This is useful for tests.

func WithRequestEditorFn

func WithRequestEditorFn(fn RequestEditorFn) ClientOption

WithRequestEditorFn allows setting up a callback function, which will be called right before sending the request. This can be used to mutate the request.

type ClientWithResponses

type ClientWithResponses struct {
	ClientInterface
}

ClientWithResponses builds on ClientInterface to offer response payloads

func NewClientWithResponses

func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error)

NewClientWithResponses creates a new ClientWithResponses, which wraps Client with return type handling

func (*ClientWithResponses) GetHealthWithBodyWithResponse

func (c *ClientWithResponses) GetHealthWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*GetHealthResponse, error)

GetHealthWithBodyWithResponse request with arbitrary body returning *GetHealthResponse

func (*ClientWithResponses) GetHealthWithResponse

func (c *ClientWithResponses) GetHealthWithResponse(ctx context.Context, body GetHealthJSONRequestBody, reqEditors ...RequestEditorFn) (*GetHealthResponse, error)

func (*ClientWithResponses) ListGPUProvidersWithBodyWithResponse

func (c *ClientWithResponses) ListGPUProvidersWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ListGPUProvidersResponse, error)

ListGPUProvidersWithBodyWithResponse request with arbitrary body returning *ListGPUProvidersResponse

func (*ClientWithResponses) ListGPUProvidersWithResponse

func (c *ClientWithResponses) ListGPUProvidersWithResponse(ctx context.Context, body ListGPUProvidersJSONRequestBody, reqEditors ...RequestEditorFn) (*ListGPUProvidersResponse, error)

func (*ClientWithResponses) ListPendingTasksWithBodyWithResponse

func (c *ClientWithResponses) ListPendingTasksWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ListPendingTasksResponse, error)

ListPendingTasksWithBodyWithResponse request with arbitrary body returning *ListPendingTasksResponse

func (*ClientWithResponses) ListPendingTasksWithResponse

func (c *ClientWithResponses) ListPendingTasksWithResponse(ctx context.Context, body ListPendingTasksJSONRequestBody, reqEditors ...RequestEditorFn) (*ListPendingTasksResponse, error)

func (*ClientWithResponses) OfferTaskWithBodyWithResponse

func (c *ClientWithResponses) OfferTaskWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*OfferTaskResponse, error)

OfferTaskWithBodyWithResponse request with arbitrary body returning *OfferTaskResponse

func (*ClientWithResponses) OfferTaskWithResponse

func (c *ClientWithResponses) OfferTaskWithResponse(ctx context.Context, body OfferTaskJSONRequestBody, reqEditors ...RequestEditorFn) (*OfferTaskResponse, error)

func (*ClientWithResponses) SubmitTaskResultWithBodyWithResponse

func (c *ClientWithResponses) SubmitTaskResultWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubmitTaskResultResponse, error)

SubmitTaskResultWithBodyWithResponse request with arbitrary body returning *SubmitTaskResultResponse

func (*ClientWithResponses) SubmitTaskResultWithResponse

func (c *ClientWithResponses) SubmitTaskResultWithResponse(ctx context.Context, body SubmitTaskResultJSONRequestBody, reqEditors ...RequestEditorFn) (*SubmitTaskResultResponse, error)

type ClientWithResponsesInterface

type ClientWithResponsesInterface interface {
	// GetHealthWithBodyWithResponse request with any body
	GetHealthWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*GetHealthResponse, error)

	GetHealthWithResponse(ctx context.Context, body GetHealthJSONRequestBody, reqEditors ...RequestEditorFn) (*GetHealthResponse, error)

	// ListGPUProvidersWithBodyWithResponse request with any body
	ListGPUProvidersWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ListGPUProvidersResponse, error)

	ListGPUProvidersWithResponse(ctx context.Context, body ListGPUProvidersJSONRequestBody, reqEditors ...RequestEditorFn) (*ListGPUProvidersResponse, error)

	// ListPendingTasksWithBodyWithResponse request with any body
	ListPendingTasksWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*ListPendingTasksResponse, error)

	ListPendingTasksWithResponse(ctx context.Context, body ListPendingTasksJSONRequestBody, reqEditors ...RequestEditorFn) (*ListPendingTasksResponse, error)

	// OfferTaskWithBodyWithResponse request with any body
	OfferTaskWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*OfferTaskResponse, error)

	OfferTaskWithResponse(ctx context.Context, body OfferTaskJSONRequestBody, reqEditors ...RequestEditorFn) (*OfferTaskResponse, error)

	// SubmitTaskResultWithBodyWithResponse request with any body
	SubmitTaskResultWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*SubmitTaskResultResponse, error)

	SubmitTaskResultWithResponse(ctx context.Context, body SubmitTaskResultJSONRequestBody, reqEditors ...RequestEditorFn) (*SubmitTaskResultResponse, error)
}

ClientWithResponsesInterface is the interface specification for the client with responses above.

type CoinSymbol

type CoinSymbol string

CoinSymbol The coin symbol of the model

const (
	CoinSymbolSD      CoinSymbol = "SD"
	CoinSymbolUnknown CoinSymbol = "Unknown"
)

Defines values for CoinSymbol.

type Error

type Error struct {
	Code    *int    `json:"code,omitempty"`
	Data    *string `json:"data,omitempty"`
	Message *string `json:"message,omitempty"`
}

Error defines model for Error.

type GPUProvider

type GPUProvider struct {
	CPU             *CPUInfo              `json:"CPU,omitempty"`
	RAM             *RAMInfo              `json:"RAM,omitempty"`
	Checksum        *string               `json:"checksum,omitempty"`
	Commit          *string               `json:"commit,omitempty"`
	NvidiaGpuModels sdcli.NvidiaGPUModels `json:"nvidia_gpu_models,omitempty"`
	Os              *string               `json:"os,omitempty"`
	Platform        *string               `json:"platform,omitempty"`
	Python          *string               `json:"python,omitempty"`

	// Sig signature of the createdAt field
	Sig     *string `json:"sig,omitempty"`
	Version *string `json:"version,omitempty"`

	// WalletAddress Primary key identifying the GPU provider
	WalletAddress string `json:"walletAddress"`
}

GPUProvider defines model for GPUProvider.

type GetHealthJSONBody

type GetHealthJSONBody struct {
	Id      int    `json:"id"`
	Jsonrpc string `json:"jsonrpc"`
	Method  string `json:"method"`
}

GetHealthJSONBody defines parameters for GetHealth.

type GetHealthJSONRequestBody

type GetHealthJSONRequestBody GetHealthJSONBody

GetHealthJSONRequestBody defines body for GetHealth for application/json ContentType.

type GetHealthResponse

type GetHealthResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *struct {
		Error   *Error            `json:"error,omitempty"`
		Id      int               `json:"id"`
		Jsonrpc string            `json:"jsonrpc"`
		Result  HealthCheckResult `json:"result"`
	}
}

func ParseGetHealthResponse

func ParseGetHealthResponse(rsp *http.Response) (*GetHealthResponse, error)

ParseGetHealthResponse parses an HTTP response from a GetHealthWithResponse call

func (GetHealthResponse) Status

func (r GetHealthResponse) Status() string

Status returns HTTPResponse.Status

func (GetHealthResponse) StatusCode

func (r GetHealthResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type HealthCheckResult

type HealthCheckResult struct {
	Status string `json:"status"`
}

HealthCheckResult defines model for HealthCheckResult.

type HttpRequestDoer

type HttpRequestDoer interface {
	Do(req *http.Request) (*http.Response, error)
}

Doer performs HTTP requests.

The standard http.Client implements this interface.

type ListGPUProvidersJSONBody

type ListGPUProvidersJSONBody struct {
	Id      int    `json:"id"`
	Jsonrpc string `json:"jsonrpc"`
	Method  string `json:"method"`
}

ListGPUProvidersJSONBody defines parameters for ListGPUProviders.

type ListGPUProvidersJSONRequestBody

type ListGPUProvidersJSONRequestBody ListGPUProvidersJSONBody

ListGPUProvidersJSONRequestBody defines body for ListGPUProviders for application/json ContentType.

type ListGPUProvidersResponse

type ListGPUProvidersResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *struct {
		Error   *Error        `json:"error,omitempty"`
		Id      int           `json:"id"`
		Jsonrpc string        `json:"jsonrpc"`
		Result  []GPUProvider `json:"result"`
	}
}

func ParseListGPUProvidersResponse

func ParseListGPUProvidersResponse(rsp *http.Response) (*ListGPUProvidersResponse, error)

ParseListGPUProvidersResponse parses an HTTP response from a ListGPUProvidersWithResponse call

func (ListGPUProvidersResponse) Status

func (r ListGPUProvidersResponse) Status() string

Status returns HTTPResponse.Status

func (ListGPUProvidersResponse) StatusCode

func (r ListGPUProvidersResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type ListPendingTasksJSONBody

type ListPendingTasksJSONBody struct {
	Id      int           `json:"id"`
	Jsonrpc string        `json:"jsonrpc"`
	Method  string        `json:"method"`
	Params  []GPUProvider `json:"params"`
}

ListPendingTasksJSONBody defines parameters for ListPendingTasks.

type ListPendingTasksJSONRequestBody

type ListPendingTasksJSONRequestBody ListPendingTasksJSONBody

ListPendingTasksJSONRequestBody defines body for ListPendingTasks for application/json ContentType.

type ListPendingTasksResponse

type ListPendingTasksResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *struct {
		Error   *Error      `json:"error,omitempty"`
		Id      int         `json:"id"`
		Jsonrpc string      `json:"jsonrpc"`
		Result  []TaskOffer `json:"result"`
	}
}

func ParseListPendingTasksResponse

func ParseListPendingTasksResponse(rsp *http.Response) (*ListPendingTasksResponse, error)

ParseListPendingTasksResponse parses an HTTP response from a ListPendingTasksWithResponse call

func (ListPendingTasksResponse) Status

func (r ListPendingTasksResponse) Status() string

Status returns HTTPResponse.Status

func (ListPendingTasksResponse) StatusCode

func (r ListPendingTasksResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type OfferTaskJSONBody

type OfferTaskJSONBody struct {
	Id      string             `json:"id"`
	Jsonrpc string             `json:"jsonrpc"`
	Method  string             `json:"method"`
	Params  []OfferTaskRequest `json:"params"`
}

OfferTaskJSONBody defines parameters for OfferTask.

type OfferTaskJSONRequestBody

type OfferTaskJSONRequestBody OfferTaskJSONBody

OfferTaskJSONRequestBody defines body for OfferTask for application/json ContentType.

type OfferTaskRequest

type OfferTaskRequest struct {
	// CoinSymbol The coin symbol of the model
	CoinSymbol *CoinSymbol `json:"coinSymbol,omitempty"`
	Id         string      `json:"id"`

	// MaxOfferPrice Represented as a string to accommodate large numbers
	MaxOfferPrice string                  `json:"maxOfferPrice"`
	Payload       *map[string]interface{} `json:"payload,omitempty"`
}

OfferTaskRequest defines model for OfferTaskRequest.

type OfferTaskResponse

type OfferTaskResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *TaskResult
}

func ParseOfferTaskResponse

func ParseOfferTaskResponse(rsp *http.Response) (*OfferTaskResponse, error)

ParseOfferTaskResponse parses an HTTP response from a OfferTaskWithResponse call

func (OfferTaskResponse) Status

func (r OfferTaskResponse) Status() string

Status returns HTTPResponse.Status

func (OfferTaskResponse) StatusCode

func (r OfferTaskResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type RAMInfo

type RAMInfo struct {
	Active   *string `json:"active,omitempty"`
	Buffers  *string `json:"buffers,omitempty"`
	Cached   *string `json:"cached,omitempty"`
	Free     *string `json:"free,omitempty"`
	Inactive *string `json:"inactive,omitempty"`
	Shared   *string `json:"shared,omitempty"`
	Total    *string `json:"total,omitempty"`
	Used     *string `json:"used,omitempty"`
}

RAMInfo defines model for RAMInfo.

type RequestEditorFn

type RequestEditorFn func(ctx context.Context, req *http.Request) error

RequestEditorFn is the function signature for the RequestEditor callback function

type Status

type Status string

Status The current status of the task

const (
	StatusCompleted  Status = "Completed"
	StatusFailed     Status = "Failed"
	StatusInProgress Status = "InProgress"
	StatusPending    Status = "Pending"
	StatusUnknown    Status = "Unknown"
)

Defines values for Status.

type SubmitTaskResultJSONBody

type SubmitTaskResultJSONBody struct {
	Id      int                       `json:"id"`
	Jsonrpc string                    `json:"jsonrpc"`
	Method  string                    `json:"method"`
	Params  []SubmitTaskResultRequest `json:"params"`
}

SubmitTaskResultJSONBody defines parameters for SubmitTaskResult.

type SubmitTaskResultJSONRequestBody

type SubmitTaskResultJSONRequestBody SubmitTaskResultJSONBody

SubmitTaskResultJSONRequestBody defines body for SubmitTaskResult for application/json ContentType.

type SubmitTaskResultRequest

type SubmitTaskResultRequest struct {
	// CoinSymbol The coin symbol of the model
	CoinSymbol *CoinSymbol             `json:"coinSymbol,omitempty"`
	Id         *string                 `json:"id,omitempty"`
	Payload    *map[string]interface{} `json:"payload,omitempty"`

	// Status The current status of the task
	Status *Status `json:"status,omitempty"`
}

SubmitTaskResultRequest defines model for SubmitTaskResultRequest.

type SubmitTaskResultResponse

type SubmitTaskResultResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *struct {
		Error   *Error      `json:"error,omitempty"`
		Id      int         `json:"id"`
		Jsonrpc string      `json:"jsonrpc"`
		Result  interface{} `json:"result"`
	}
}

func ParseSubmitTaskResultResponse

func ParseSubmitTaskResultResponse(rsp *http.Response) (*SubmitTaskResultResponse, error)

ParseSubmitTaskResultResponse parses an HTTP response from a SubmitTaskResultWithResponse call

func (SubmitTaskResultResponse) Status

func (r SubmitTaskResultResponse) Status() string

Status returns HTTPResponse.Status

func (SubmitTaskResultResponse) StatusCode

func (r SubmitTaskResultResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type TaskOffer

type TaskOffer struct {
	// CoinSymbol The coin symbol of the model
	CoinSymbol CoinSymbol `json:"coinSymbol"`
	CreatedAt  time.Time  `json:"createdAt"`

	// Id Unique identifier for the task
	Id string `json:"id"`

	// MaxOfferPrice Maximum offer price in a compatible numeric string format
	MaxOfferPrice string                 `json:"maxOfferPrice"`
	Payload       map[string]interface{} `json:"payload"`

	// Status The current status of the task
	Status Status `json:"status"`
}

TaskOffer defines model for TaskOffer.

type TaskResult

type TaskResult struct {
	// Id The unique identifier of the image generation task.
	Id      string                  `json:"id"`
	Payload *map[string]interface{} `json:"payload,omitempty"`

	// Status The current status of the task
	Status *Status `json:"status,omitempty"`
}

TaskResult defines model for TaskResult.

Jump to

Keyboard shortcuts

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