Title: RequiredOption
Published: May 20, 2026

---

# class RequiredOption {}

## In this article

 * [Description](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/?output_format=md#description)
 * [Methods](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/?output_format=md#methods)
 * [Source](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/?output_format=md#source)
 * [Changelog](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/?output_format=md#wp--skip-link--target)

Represents an option that the implementing code requires the model to support.

## 󠀁[Description](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/?output_format=md#description)󠁿

This class defines an option that the model must support with a specific value for
it to be considered suitable for the implementing code’s requirements.

## 󠀁[Methods](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/?output_format=md#methods)󠁿

| Name | Description | 
| [RequiredOption::__construct](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/__construct/) | Constructor. | 
| [RequiredOption::fromArray](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/fromarray/) | {@inheritDoc} | 
| [RequiredOption::getJsonSchema](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/getjsonschema/) | {@inheritDoc} | 
| [RequiredOption::getName](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/getname/) | Gets the option name. | 
| [RequiredOption::getValue](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/getvalue/) | Gets the value that the model must support for this option. | 
| [RequiredOption::toArray](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/toarray/) | {@inheritDoc} |

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/?output_format=md#source)󠁿

    ```php
    class RequiredOption extends AbstractDataTransferObject
    {
        public const KEY_NAME = 'name';
        public const KEY_VALUE = 'value';
        /**
         * @var OptionEnum The option name.
         */
        protected OptionEnum $name;
        /**
         * @var mixed The value that the model must support for this option.
         */
        protected $value;
        /**
         * Constructor.
         *
         * @since 0.1.0
         *
         * @param OptionEnum $name The option name.
         * @param mixed $value The value that the model must support for this option.
         */
        public function __construct(OptionEnum $name, $value)
        {
            $this->name = $name;
            $this->value = $value;
        }
        /**
         * Gets the option name.
         *
         * @since 0.1.0
         *
         * @return OptionEnum The option name.
         */
        public function getName(): OptionEnum
        {
            return $this->name;
        }
        /**
         * Gets the value that the model must support for this option.
         *
         * @since 0.1.0
         *
         * @return mixed The value that the model must support.
         */
        public function getValue()
        {
            return $this->value;
        }
        /**
         * {@inheritDoc}
         *
         * @since 0.1.0
         */
        public static function getJsonSchema(): array
        {
            return ['type' => 'object', 'properties' => [self::KEY_NAME => ['type' => 'string', 'enum' => OptionEnum::getValues(), 'description' => 'The option name.'], self::KEY_VALUE => ['oneOf' => [['type' => 'string'], ['type' => 'number'], ['type' => 'boolean'], ['type' => 'null'], ['type' => 'array'], ['type' => 'object']], 'description' => 'The value that the model must support for this option.']], 'required' => [self::KEY_NAME, self::KEY_VALUE]];
        }
        /**
         * {@inheritDoc}
         *
         * @since 0.1.0
         *
         * @return RequiredOptionArrayShape
         */
        public function toArray(): array
        {
            return [self::KEY_NAME => $this->name->value, self::KEY_VALUE => $this->value];
        }
        /**
         * {@inheritDoc}
         *
         * @since 0.1.0
         */
        public static function fromArray(array $array): self
        {
            static::validateFromArrayData($array, [self::KEY_NAME, self::KEY_VALUE]);
            return new self(OptionEnum::from($array[self::KEY_NAME]), $array[self::KEY_VALUE]);
        }
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-includes/php-ai-client/src/providers/models/dto/requiredoption.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-includes/php-ai-client/src/Providers/Models/DTO/RequiredOption.php#L23)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-includes/php-ai-client/src/Providers/Models/DTO/RequiredOption.php#L23-L100)

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wordpress-aiclient-providers-models-dto-requiredoption/?output_format=md#changelog)󠁿

| Version | Description | 
| [0.1.0](https://developer.wordpress.org/reference/since/0.1.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwordpress-aiclient-providers-models-dto-requiredoption%2F)
before being able to contribute a note or feedback.