# `Polarex.CustomFields`
[🔗](https://github.com/giusdp/polarex/blob/main/lib/polarex/operations/custom_fields.ex#L1)

Provides API endpoints related to custom fields

# `custom_fields_create`

```elixir
@spec custom_fields_create(
  body ::
    Polarex.CustomFieldCreateCheckbox.t()
    | Polarex.CustomFieldCreateDate.t()
    | Polarex.CustomFieldCreateNumber.t()
    | Polarex.CustomFieldCreateSelect.t()
    | Polarex.CustomFieldCreateText.t(),
  opts :: keyword()
) ::
  {:ok,
   Polarex.CustomFieldCheckbox.t()
   | Polarex.CustomFieldDate.t()
   | Polarex.CustomFieldNumber.t()
   | Polarex.CustomFieldSelect.t()
   | Polarex.CustomFieldText.t()}
  | {:error, Polarex.HTTPValidationError.t()}
```

Create Custom Field

Create a custom field.

**Scopes**: `custom_fields:write`

## Request Body

**Content Types**: `application/json`

# `custom_fields_delete`

```elixir
@spec custom_fields_delete(id :: String.t(), opts :: keyword()) ::
  :ok | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}
```

Delete Custom Field

Delete a custom field.

**Scopes**: `custom_fields:write`

# `custom_fields_get`

```elixir
@spec custom_fields_get(id :: String.t(), opts :: keyword()) ::
  {:ok,
   Polarex.CustomFieldCheckbox.t()
   | Polarex.CustomFieldDate.t()
   | Polarex.CustomFieldNumber.t()
   | Polarex.CustomFieldSelect.t()
   | Polarex.CustomFieldText.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}
```

Get Custom Field

Get a custom field by ID.

**Scopes**: `custom_fields:read` `custom_fields:write`

# `custom_fields_list`

```elixir
@spec custom_fields_list(opts :: keyword()) ::
  {:ok, Polarex.ListResourceCustomField.t()}
  | {:error, Polarex.HTTPValidationError.t()}
```

List Custom Fields

List custom fields.

**Scopes**: `custom_fields:read` `custom_fields:write`

## Options

  * `organization_id`: Filter by organization ID.
  * `query`: Filter by custom field name or slug.
  * `type`: Filter by custom field type.
  * `page`: Page number, defaults to 1.
  * `limit`: Size of a page, defaults to 10. Maximum is 100.
  * `sorting`: Sorting criterion. Several criteria can be used simultaneously and will be applied in order. Add a minus sign `-` before the criteria name to sort by descending order.

# `custom_fields_update`

```elixir
@spec custom_fields_update(
  id :: String.t(),
  body ::
    Polarex.CustomFieldUpdateCheckbox.t()
    | Polarex.CustomFieldUpdateDate.t()
    | Polarex.CustomFieldUpdateNumber.t()
    | Polarex.CustomFieldUpdateSelect.t()
    | Polarex.CustomFieldUpdateText.t(),
  opts :: keyword()
) ::
  {:ok,
   Polarex.CustomFieldCheckbox.t()
   | Polarex.CustomFieldDate.t()
   | Polarex.CustomFieldNumber.t()
   | Polarex.CustomFieldSelect.t()
   | Polarex.CustomFieldText.t()}
  | {:error, Polarex.HTTPValidationError.t() | Polarex.ResourceNotFound.t()}
```

Update Custom Field

Update a custom field.

**Scopes**: `custom_fields:write`

## Request Body

**Content Types**: `application/json`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
