replicas

package
v0.20240110.1151535 Latest Latest
Warning

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

Go to latest
Published: Jan 10, 2024 License: MPL-2.0 Imports: 14 Imported by: 0

README

github.com/hashicorp/go-azure-sdk/resource-manager/postgresql/2023-06-01-preview/replicas Documentation

The replicas SDK allows for interaction with the Azure Resource Manager Service postgresql (API Version 2023-06-01-preview).

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/postgresql/2023-06-01-preview/replicas"

Client Initialization

client := replicas.NewReplicasClientWithBaseURI("https://management.azure.com")
client.Client.Authorizer = authorizer

Example Usage: ReplicasClient.ListByServer

ctx := context.TODO()
id := replicas.NewFlexibleServerID("12345678-1234-9876-4563-123456789012", "example-resource-group", "flexibleServerValue")

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

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func PossibleValuesForActiveDirectoryAuthEnum

func PossibleValuesForActiveDirectoryAuthEnum() []string

func PossibleValuesForArmServerKeyType

func PossibleValuesForArmServerKeyType() []string

func PossibleValuesForAzureManagedDiskPerformanceTiers

func PossibleValuesForAzureManagedDiskPerformanceTiers() []string

func PossibleValuesForCreateMode

func PossibleValuesForCreateMode() []string

func PossibleValuesForGeoRedundantBackupEnum

func PossibleValuesForGeoRedundantBackupEnum() []string

func PossibleValuesForHighAvailabilityMode

func PossibleValuesForHighAvailabilityMode() []string

func PossibleValuesForKeyStatusEnum

func PossibleValuesForKeyStatusEnum() []string

func PossibleValuesForPasswordAuthEnum

func PossibleValuesForPasswordAuthEnum() []string

func PossibleValuesForPrivateEndpointConnectionProvisioningState

func PossibleValuesForPrivateEndpointConnectionProvisioningState() []string

func PossibleValuesForPrivateEndpointServiceConnectionStatus

func PossibleValuesForPrivateEndpointServiceConnectionStatus() []string

func PossibleValuesForReadReplicaPromoteMode

func PossibleValuesForReadReplicaPromoteMode() []string

func PossibleValuesForReplicationPromoteOption

func PossibleValuesForReplicationPromoteOption() []string

func PossibleValuesForReplicationRole

func PossibleValuesForReplicationRole() []string

func PossibleValuesForReplicationState

func PossibleValuesForReplicationState() []string

func PossibleValuesForServerHAState

func PossibleValuesForServerHAState() []string

func PossibleValuesForServerPublicNetworkAccessState

func PossibleValuesForServerPublicNetworkAccessState() []string

func PossibleValuesForServerState

func PossibleValuesForServerState() []string

func PossibleValuesForServerVersion

func PossibleValuesForServerVersion() []string

func PossibleValuesForSkuTier

func PossibleValuesForSkuTier() []string

func PossibleValuesForStorageAutoGrow

func PossibleValuesForStorageAutoGrow() []string

func PossibleValuesForStorageType

func PossibleValuesForStorageType() []string

func ValidateFlexibleServerID

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

ValidateFlexibleServerID checks that 'input' can be parsed as a Flexible Server ID

Types

type ActiveDirectoryAuthEnum

type ActiveDirectoryAuthEnum string
const (
	ActiveDirectoryAuthEnumDisabled ActiveDirectoryAuthEnum = "Disabled"
	ActiveDirectoryAuthEnumEnabled  ActiveDirectoryAuthEnum = "Enabled"
)

func (*ActiveDirectoryAuthEnum) UnmarshalJSON

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

type ArmServerKeyType

type ArmServerKeyType string
const (
	ArmServerKeyTypeAzureKeyVault ArmServerKeyType = "AzureKeyVault"
	ArmServerKeyTypeSystemManaged ArmServerKeyType = "SystemManaged"
)

func (*ArmServerKeyType) UnmarshalJSON

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

type AuthConfig

type AuthConfig struct {
	ActiveDirectoryAuth *ActiveDirectoryAuthEnum `json:"activeDirectoryAuth,omitempty"`
	PasswordAuth        *PasswordAuthEnum        `json:"passwordAuth,omitempty"`
	TenantId            *string                  `json:"tenantId,omitempty"`
}

type AzureManagedDiskPerformanceTiers

type AzureManagedDiskPerformanceTiers string
const (
	AzureManagedDiskPerformanceTiersPEightZero AzureManagedDiskPerformanceTiers = "P80"
	AzureManagedDiskPerformanceTiersPFiveZero  AzureManagedDiskPerformanceTiers = "P50"
	AzureManagedDiskPerformanceTiersPFour      AzureManagedDiskPerformanceTiers = "P4"
	AzureManagedDiskPerformanceTiersPFourZero  AzureManagedDiskPerformanceTiers = "P40"
	AzureManagedDiskPerformanceTiersPOne       AzureManagedDiskPerformanceTiers = "P1"
	AzureManagedDiskPerformanceTiersPOneFive   AzureManagedDiskPerformanceTiers = "P15"
	AzureManagedDiskPerformanceTiersPOneZero   AzureManagedDiskPerformanceTiers = "P10"
	AzureManagedDiskPerformanceTiersPSevenZero AzureManagedDiskPerformanceTiers = "P70"
	AzureManagedDiskPerformanceTiersPSix       AzureManagedDiskPerformanceTiers = "P6"
	AzureManagedDiskPerformanceTiersPSixZero   AzureManagedDiskPerformanceTiers = "P60"
	AzureManagedDiskPerformanceTiersPThree     AzureManagedDiskPerformanceTiers = "P3"
	AzureManagedDiskPerformanceTiersPThreeZero AzureManagedDiskPerformanceTiers = "P30"
	AzureManagedDiskPerformanceTiersPTwo       AzureManagedDiskPerformanceTiers = "P2"
	AzureManagedDiskPerformanceTiersPTwoZero   AzureManagedDiskPerformanceTiers = "P20"
)

func (*AzureManagedDiskPerformanceTiers) UnmarshalJSON

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

type Backup

type Backup struct {
	BackupRetentionDays *int64                  `json:"backupRetentionDays,omitempty"`
	EarliestRestoreDate *string                 `json:"earliestRestoreDate,omitempty"`
	GeoRedundantBackup  *GeoRedundantBackupEnum `json:"geoRedundantBackup,omitempty"`
}

func (*Backup) GetEarliestRestoreDateAsTime

func (o *Backup) GetEarliestRestoreDateAsTime() (*time.Time, error)

func (*Backup) SetEarliestRestoreDateAsTime

func (o *Backup) SetEarliestRestoreDateAsTime(input time.Time)

type CreateMode

type CreateMode string
const (
	CreateModeCreate             CreateMode = "Create"
	CreateModeDefault            CreateMode = "Default"
	CreateModeGeoRestore         CreateMode = "GeoRestore"
	CreateModePointInTimeRestore CreateMode = "PointInTimeRestore"
	CreateModeReplica            CreateMode = "Replica"
	CreateModeReviveDropped      CreateMode = "ReviveDropped"
	CreateModeUpdate             CreateMode = "Update"
)

func (*CreateMode) UnmarshalJSON

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

type DataEncryption

type DataEncryption struct {
	GeoBackupEncryptionKeyStatus    *KeyStatusEnum    `json:"geoBackupEncryptionKeyStatus,omitempty"`
	GeoBackupKeyURI                 *string           `json:"geoBackupKeyURI,omitempty"`
	GeoBackupUserAssignedIdentityId *string           `json:"geoBackupUserAssignedIdentityId,omitempty"`
	PrimaryEncryptionKeyStatus      *KeyStatusEnum    `json:"primaryEncryptionKeyStatus,omitempty"`
	PrimaryKeyURI                   *string           `json:"primaryKeyURI,omitempty"`
	PrimaryUserAssignedIdentityId   *string           `json:"primaryUserAssignedIdentityId,omitempty"`
	Type                            *ArmServerKeyType `json:"type,omitempty"`
}

type FlexibleServerId

type FlexibleServerId struct {
	SubscriptionId     string
	ResourceGroupName  string
	FlexibleServerName string
}

FlexibleServerId is a struct representing the Resource ID for a Flexible Server

func NewFlexibleServerID

func NewFlexibleServerID(subscriptionId string, resourceGroupName string, flexibleServerName string) FlexibleServerId

NewFlexibleServerID returns a new FlexibleServerId struct

func ParseFlexibleServerID

func ParseFlexibleServerID(input string) (*FlexibleServerId, error)

ParseFlexibleServerID parses 'input' into a FlexibleServerId

func ParseFlexibleServerIDInsensitively

func ParseFlexibleServerIDInsensitively(input string) (*FlexibleServerId, error)

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

func (*FlexibleServerId) FromParseResult added in v0.20231127.1171502

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

func (FlexibleServerId) ID

func (id FlexibleServerId) ID() string

ID returns the formatted Flexible Server ID

func (FlexibleServerId) Segments

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

Segments returns a slice of Resource ID Segments which comprise this Flexible Server ID

func (FlexibleServerId) String

func (id FlexibleServerId) String() string

String returns a human-readable description of this Flexible Server ID

type GeoRedundantBackupEnum

type GeoRedundantBackupEnum string
const (
	GeoRedundantBackupEnumDisabled GeoRedundantBackupEnum = "Disabled"
	GeoRedundantBackupEnumEnabled  GeoRedundantBackupEnum = "Enabled"
)

func (*GeoRedundantBackupEnum) UnmarshalJSON

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

type HighAvailability

type HighAvailability struct {
	Mode                    *HighAvailabilityMode `json:"mode,omitempty"`
	StandbyAvailabilityZone *string               `json:"standbyAvailabilityZone,omitempty"`
	State                   *ServerHAState        `json:"state,omitempty"`
}

type HighAvailabilityMode

type HighAvailabilityMode string
const (
	HighAvailabilityModeDisabled      HighAvailabilityMode = "Disabled"
	HighAvailabilityModeSameZone      HighAvailabilityMode = "SameZone"
	HighAvailabilityModeZoneRedundant HighAvailabilityMode = "ZoneRedundant"
)

func (*HighAvailabilityMode) UnmarshalJSON

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

type KeyStatusEnum

type KeyStatusEnum string
const (
	KeyStatusEnumInvalid KeyStatusEnum = "Invalid"
	KeyStatusEnumValid   KeyStatusEnum = "Valid"
)

func (*KeyStatusEnum) UnmarshalJSON

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

type ListByServerOperationResponse

type ListByServerOperationResponse struct {
	HttpResponse *http.Response
	OData        *odata.OData
	Model        *ServerListResult
}

type MaintenanceWindow

type MaintenanceWindow struct {
	CustomWindow *string `json:"customWindow,omitempty"`
	DayOfWeek    *int64  `json:"dayOfWeek,omitempty"`
	StartHour    *int64  `json:"startHour,omitempty"`
	StartMinute  *int64  `json:"startMinute,omitempty"`
}

type Network

type Network struct {
	DelegatedSubnetResourceId   *string                         `json:"delegatedSubnetResourceId,omitempty"`
	PrivateDnsZoneArmResourceId *string                         `json:"privateDnsZoneArmResourceId,omitempty"`
	PublicNetworkAccess         *ServerPublicNetworkAccessState `json:"publicNetworkAccess,omitempty"`
}

type PasswordAuthEnum

type PasswordAuthEnum string
const (
	PasswordAuthEnumDisabled PasswordAuthEnum = "Disabled"
	PasswordAuthEnumEnabled  PasswordAuthEnum = "Enabled"
)

func (*PasswordAuthEnum) UnmarshalJSON

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

type PrivateEndpoint

type PrivateEndpoint struct {
	Id *string `json:"id,omitempty"`
}

type PrivateEndpointConnection

type PrivateEndpointConnection struct {
	Id         *string                              `json:"id,omitempty"`
	Name       *string                              `json:"name,omitempty"`
	Properties *PrivateEndpointConnectionProperties `json:"properties,omitempty"`
	SystemData *systemdata.SystemData               `json:"systemData,omitempty"`
	Type       *string                              `json:"type,omitempty"`
}

type PrivateEndpointConnectionProperties

type PrivateEndpointConnectionProperties struct {
	GroupIds                          *[]string                                   `json:"groupIds,omitempty"`
	PrivateEndpoint                   *PrivateEndpoint                            `json:"privateEndpoint,omitempty"`
	PrivateLinkServiceConnectionState PrivateLinkServiceConnectionState           `json:"privateLinkServiceConnectionState"`
	ProvisioningState                 *PrivateEndpointConnectionProvisioningState `json:"provisioningState,omitempty"`
}

type PrivateEndpointConnectionProvisioningState

type PrivateEndpointConnectionProvisioningState string
const (
	PrivateEndpointConnectionProvisioningStateCreating  PrivateEndpointConnectionProvisioningState = "Creating"
	PrivateEndpointConnectionProvisioningStateDeleting  PrivateEndpointConnectionProvisioningState = "Deleting"
	PrivateEndpointConnectionProvisioningStateFailed    PrivateEndpointConnectionProvisioningState = "Failed"
	PrivateEndpointConnectionProvisioningStateSucceeded PrivateEndpointConnectionProvisioningState = "Succeeded"
)

func (*PrivateEndpointConnectionProvisioningState) UnmarshalJSON

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

type PrivateEndpointServiceConnectionStatus

type PrivateEndpointServiceConnectionStatus string
const (
	PrivateEndpointServiceConnectionStatusApproved PrivateEndpointServiceConnectionStatus = "Approved"
	PrivateEndpointServiceConnectionStatusPending  PrivateEndpointServiceConnectionStatus = "Pending"
	PrivateEndpointServiceConnectionStatusRejected PrivateEndpointServiceConnectionStatus = "Rejected"
)

func (*PrivateEndpointServiceConnectionStatus) UnmarshalJSON

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

type PrivateLinkServiceConnectionState

type PrivateLinkServiceConnectionState struct {
	ActionsRequired *string                                 `json:"actionsRequired,omitempty"`
	Description     *string                                 `json:"description,omitempty"`
	Status          *PrivateEndpointServiceConnectionStatus `json:"status,omitempty"`
}

type ReadReplicaPromoteMode

type ReadReplicaPromoteMode string
const (
	ReadReplicaPromoteModeStandalone ReadReplicaPromoteMode = "standalone"
	ReadReplicaPromoteModeSwitchover ReadReplicaPromoteMode = "switchover"
)

func (*ReadReplicaPromoteMode) UnmarshalJSON

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

type Replica

type Replica struct {
	Capacity         *int64                    `json:"capacity,omitempty"`
	PromoteMode      *ReadReplicaPromoteMode   `json:"promoteMode,omitempty"`
	PromoteOption    *ReplicationPromoteOption `json:"promoteOption,omitempty"`
	ReplicationState *ReplicationState         `json:"replicationState,omitempty"`
	Role             *ReplicationRole          `json:"role,omitempty"`
}

type ReplicasClient

type ReplicasClient struct {
	Client *resourcemanager.Client
}

func NewReplicasClientWithBaseURI

func NewReplicasClientWithBaseURI(sdkApi sdkEnv.Api) (*ReplicasClient, error)

func (ReplicasClient) ListByServer

func (c ReplicasClient) ListByServer(ctx context.Context, id FlexibleServerId) (result ListByServerOperationResponse, err error)

ListByServer ...

type ReplicationPromoteOption

type ReplicationPromoteOption string
const (
	ReplicationPromoteOptionForced  ReplicationPromoteOption = "forced"
	ReplicationPromoteOptionPlanned ReplicationPromoteOption = "planned"
)

func (*ReplicationPromoteOption) UnmarshalJSON

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

type ReplicationRole

type ReplicationRole string
const (
	ReplicationRoleAsyncReplica    ReplicationRole = "AsyncReplica"
	ReplicationRoleGeoAsyncReplica ReplicationRole = "GeoAsyncReplica"
	ReplicationRoleNone            ReplicationRole = "None"
	ReplicationRolePrimary         ReplicationRole = "Primary"
)

func (*ReplicationRole) UnmarshalJSON

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

type ReplicationState

type ReplicationState string
const (
	ReplicationStateActive        ReplicationState = "Active"
	ReplicationStateBroken        ReplicationState = "Broken"
	ReplicationStateCatchup       ReplicationState = "Catchup"
	ReplicationStateProvisioning  ReplicationState = "Provisioning"
	ReplicationStateReconfiguring ReplicationState = "Reconfiguring"
	ReplicationStateUpdating      ReplicationState = "Updating"
)

func (*ReplicationState) UnmarshalJSON

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

type Server

type Server struct {
	Id         *string                   `json:"id,omitempty"`
	Identity   *identity.UserAssignedMap `json:"identity,omitempty"`
	Location   string                    `json:"location"`
	Name       *string                   `json:"name,omitempty"`
	Properties *ServerProperties         `json:"properties,omitempty"`
	Sku        *Sku                      `json:"sku,omitempty"`
	SystemData *systemdata.SystemData    `json:"systemData,omitempty"`
	Tags       *map[string]string        `json:"tags,omitempty"`
	Type       *string                   `json:"type,omitempty"`
}

type ServerHAState

type ServerHAState string
const (
	ServerHAStateCreatingStandby ServerHAState = "CreatingStandby"
	ServerHAStateFailingOver     ServerHAState = "FailingOver"
	ServerHAStateHealthy         ServerHAState = "Healthy"
	ServerHAStateNotEnabled      ServerHAState = "NotEnabled"
	ServerHAStateRemovingStandby ServerHAState = "RemovingStandby"
	ServerHAStateReplicatingData ServerHAState = "ReplicatingData"
)

func (*ServerHAState) UnmarshalJSON

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

type ServerListResult

type ServerListResult struct {
	NextLink *string   `json:"nextLink,omitempty"`
	Value    *[]Server `json:"value,omitempty"`
}

type ServerProperties

type ServerProperties struct {
	AdministratorLogin         *string                      `json:"administratorLogin,omitempty"`
	AdministratorLoginPassword *string                      `json:"administratorLoginPassword,omitempty"`
	AuthConfig                 *AuthConfig                  `json:"authConfig,omitempty"`
	AvailabilityZone           *string                      `json:"availabilityZone,omitempty"`
	Backup                     *Backup                      `json:"backup,omitempty"`
	CreateMode                 *CreateMode                  `json:"createMode,omitempty"`
	DataEncryption             *DataEncryption              `json:"dataEncryption,omitempty"`
	FullyQualifiedDomainName   *string                      `json:"fullyQualifiedDomainName,omitempty"`
	HighAvailability           *HighAvailability            `json:"highAvailability,omitempty"`
	MaintenanceWindow          *MaintenanceWindow           `json:"maintenanceWindow,omitempty"`
	MinorVersion               *string                      `json:"minorVersion,omitempty"`
	Network                    *Network                     `json:"network,omitempty"`
	PointInTimeUTC             *string                      `json:"pointInTimeUTC,omitempty"`
	PrivateEndpointConnections *[]PrivateEndpointConnection `json:"privateEndpointConnections,omitempty"`
	Replica                    *Replica                     `json:"replica,omitempty"`
	ReplicaCapacity            *int64                       `json:"replicaCapacity,omitempty"`
	ReplicationRole            *ReplicationRole             `json:"replicationRole,omitempty"`
	SourceServerResourceId     *string                      `json:"sourceServerResourceId,omitempty"`
	State                      *ServerState                 `json:"state,omitempty"`
	Storage                    *Storage                     `json:"storage,omitempty"`
	Version                    *ServerVersion               `json:"version,omitempty"`
}

func (*ServerProperties) GetPointInTimeUTCAsTime

func (o *ServerProperties) GetPointInTimeUTCAsTime() (*time.Time, error)

func (*ServerProperties) SetPointInTimeUTCAsTime

func (o *ServerProperties) SetPointInTimeUTCAsTime(input time.Time)

type ServerPublicNetworkAccessState

type ServerPublicNetworkAccessState string
const (
	ServerPublicNetworkAccessStateDisabled ServerPublicNetworkAccessState = "Disabled"
	ServerPublicNetworkAccessStateEnabled  ServerPublicNetworkAccessState = "Enabled"
)

func (*ServerPublicNetworkAccessState) UnmarshalJSON

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

type ServerState

type ServerState string
const (
	ServerStateDisabled ServerState = "Disabled"
	ServerStateDropping ServerState = "Dropping"
	ServerStateReady    ServerState = "Ready"
	ServerStateStarting ServerState = "Starting"
	ServerStateStopped  ServerState = "Stopped"
	ServerStateStopping ServerState = "Stopping"
	ServerStateUpdating ServerState = "Updating"
)

func (*ServerState) UnmarshalJSON

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

type ServerVersion

type ServerVersion string
const (
	ServerVersionOneFive  ServerVersion = "15"
	ServerVersionOneFour  ServerVersion = "14"
	ServerVersionOneOne   ServerVersion = "11"
	ServerVersionOneSix   ServerVersion = "16"
	ServerVersionOneThree ServerVersion = "13"
	ServerVersionOneTwo   ServerVersion = "12"
)

func (*ServerVersion) UnmarshalJSON

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

type Sku

type Sku struct {
	Name string  `json:"name"`
	Tier SkuTier `json:"tier"`
}

type SkuTier

type SkuTier string
const (
	SkuTierBurstable       SkuTier = "Burstable"
	SkuTierGeneralPurpose  SkuTier = "GeneralPurpose"
	SkuTierMemoryOptimized SkuTier = "MemoryOptimized"
)

func (*SkuTier) UnmarshalJSON

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

type Storage

type Storage struct {
	AutoGrow      *StorageAutoGrow                  `json:"autoGrow,omitempty"`
	Iops          *int64                            `json:"iops,omitempty"`
	StorageSizeGB *int64                            `json:"storageSizeGB,omitempty"`
	Throughput    *int64                            `json:"throughput,omitempty"`
	Tier          *AzureManagedDiskPerformanceTiers `json:"tier,omitempty"`
	Type          *StorageType                      `json:"type,omitempty"`
}

type StorageAutoGrow

type StorageAutoGrow string
const (
	StorageAutoGrowDisabled StorageAutoGrow = "Disabled"
	StorageAutoGrowEnabled  StorageAutoGrow = "Enabled"
)

func (*StorageAutoGrow) UnmarshalJSON

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

type StorageType

type StorageType string
const (
	StorageTypePremiumLRS     StorageType = "Premium_LRS"
	StorageTypePremiumVTwoLRS StorageType = "PremiumV2_LRS"
)

func (*StorageType) UnmarshalJSON

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

Jump to

Keyboard shortcuts

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