> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Class: VUpload<Type, IsOptional>

> An operation-only string validator carrying its upload meaning.

[server](/api/modules/server).VUpload

An operation-only string validator carrying its upload meaning.

## Type parameters

| Name | Type |
| :- | :- |
| `Type` | [`UploadRef`](/api/modules/values#uploadref) |
| `IsOptional` | extends [`OptionalProperty`](/api/modules/values#optionalproperty) = `"required"` |

## Hierarchy

* [`VString`](/api/classes/values.VString)\<`Type`, `IsOptional`>

  ↳ **`VUpload`**

## Constructors

### constructor

• **new VUpload**\<`Type`, `IsOptional`>(`options`, `isOptional`)

#### Type parameters

| Name | Type |
| :- | :- |
| `Type` | [`UploadRef`](/api/modules/values#uploadref) |
| `IsOptional` | extends [`OptionalProperty`](/api/modules/values#optionalproperty) = `"required"` |

#### Parameters

| Name | Type |
| :- | :- |
| `options` | [`UploadOptions`](/api/modules/server#uploadoptions) |
| `isOptional` | `IsOptional` |

#### Overrides

[VString](/api/classes/values.VString).[constructor](/api/classes/values.VString#constructor)

## Properties

### upload

• `Readonly` **upload**: `Readonly`\<[`UploadOptions`](/api/modules/server#uploadoptions)>

***

### type

• `Readonly` **type**: `Type`

Only for TypeScript, the TS type of the JS values validated
by this validator.

#### Inherited from

[VString](/api/classes/values.VString).[type](/api/classes/values.VString#type)

***

### fieldPaths

• `Readonly` **fieldPaths**: `never`

Only for TypeScript, if this an Object validator, then
this is the TS type of its property names.

#### Inherited from

[VString](/api/classes/values.VString).[fieldPaths](/api/classes/values.VString#fieldpaths)

***

### isOptional

• `Readonly` **isOptional**: `IsOptional`

Whether this is an optional Object property value validator.

#### Inherited from

[VString](/api/classes/values.VString).[isOptional](/api/classes/values.VString#isoptional)

***

### isConvexValidator

• `Readonly` **isConvexValidator**: `true`

Always `"true"`.

#### Inherited from

[VString](/api/classes/values.VString).[isConvexValidator](/api/classes/values.VString#isconvexvalidator)

***

### kind

• `Readonly` **kind**: `"string"`

The kind of validator, `"string"`.

#### Inherited from

[VString](/api/classes/values.VString).[kind](/api/classes/values.VString#kind)

## Methods

### optional

▸ **optional**(): [`VUpload`](/api/classes/server.VUpload)\<`undefined` | `Type`, `"optional"`>

Allow this validated field to be absent.

#### Returns

[`VUpload`](/api/classes/server.VUpload)\<`undefined` | `Type`, `"optional"`>

#### Overrides

[VString](/api/classes/values.VString).[optional](/api/classes/values.VString#optional)

***

### asOptional

▸ **asOptional**(): [`VUpload`](/api/classes/server.VUpload)\<`undefined` | `Type`, `"optional"`>

#### Returns

[`VUpload`](/api/classes/server.VUpload)\<`undefined` | `Type`, `"optional"`>

#### Overrides

VString.asOptional


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.