<!-- # hard line break macro for HTML -->

# plugins.label_schemas.operators

Label-schema document operators.

CRUD over [`fiftyone.core.label_schema_docs`](../../api/fiftyone.core.label_schema_docs.md#module-fiftyone.core.label_schema_docs) — self-contained named
schemas (a `label_schema` content block + a structured three-tier
`visibility` block). Mutations are MANAGE-gated; reads require VIEW
(the Explore schema lens and task surfaces read on behalf of every
viewer). The dataset DEFAULT schema is the dataset’s own stored schemas
(all fields active, never hidden) — it is not a doc, so nothing here
marks a default.

Copyright 2017-2026, Voxel51, Inc.
<br/>
[voxel51.com](https://voxel51.com/)
<br/>
<br/>

**Classes:**

| [`ListLabelSchemaDocsOperator`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator)([_builtin])                            | `{ok, schemas: [{id, name, description, updated_at, version}]}`.                                                                                                                          |
|--------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`ListUndeclaredLabelSchemaAttributesOperator`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator)([...]) | `{ok, undeclared: {path: [attribute names]}}`: the attributes a schema defines that the dataset's field schema has not declared, so the App's sidebar and filters do not show them.       |
| [`DeclareLabelSchemaAttributesOperator`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator)([_builtin])          | Declares a schema's undeclared attributes on the dataset's field schema.                                                                                                                  |
| [`GetLabelSchemaDocOperator`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator)([_builtin])                                | `{ok, schema}` — the full doc (label_schema + visibility).                                                                                                                                |
| [`CreateLabelSchemaDocOperator`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator)([_builtin])                          | Creates a doc; `from_dataset` seeds `label_schema` from the dataset's stored per-field schemas (all fields annotate-tier by membership, default `explore` for the rest — day-one parity). |
| [`UpdateLabelSchemaDocOperator`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator)([_builtin])                          | Partial update of name/description/label_schema/visibility.                                                                                                                               |
| [`DeleteLabelSchemaDocOperator`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator)([_builtin])                          | Deletes a doc.                                                                                                                                                                            |
| [`PropagateLabelSchemaFieldOperator`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator)([_builtin])                | Fans a newly created dataset field out to every custom schema: annotate-tier content in the schema it was created in (if any), explicit `hidden` everywhere else.                         |

### *class* plugins.label_schemas.operators.ListLabelSchemaDocsOperator(\_builtin=False)

Bases: [`Operator`](../../api/fiftyone.operators.operator.md#fiftyone.operators.operator.Operator)

`{ok, schemas: [{id, name, description, updated_at, version}]}`.

**Attributes:**

| [`config`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.config)         | The `OperatorConfig` for the operator.                                                                           |
|-----------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [`builtin`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.builtin)       | Whether the operator is builtin.                                                                                 |
| [`name`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.name)             |                                                                                                                  |
| [`risk_level`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.risk_level) | The effective risk level of the operator, which is used by guardrail systems of an agent to classify tool calls. |
| [`uri`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.uri)               | The unique identifier of the operator: `plugin_name/operator_name`.                                              |

**Methods:**

| [`resolve_input`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.resolve_input)(ctx)                         | Returns the resolved input property.            |
|----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [`execute`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.execute)(ctx)                                     | Executes the operator.                          |
| [`add_secrets`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.add_secrets)(secrets)                         | Adds secrets to the operator.                   |
| [`method_to_uri`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.method_to_uri)(method_name)                 | Converts a method name to a URI.                |
| [`resolve_delegation`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.resolve_delegation)(ctx)               | Returns the resolved *forced* delegation flag.  |
| [`resolve_execution_options`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.resolve_execution_options)(ctx) | Returns the resolved execution options.         |
| [`resolve_output`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.resolve_output)(ctx)                       | Returns the resolved output property.           |
| [`resolve_placement`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.resolve_placement)(ctx)                 | Returns the resolved placement of the operator. |
| [`resolve_run_name`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.resolve_run_name)(ctx)                   | Returns the resolved run name of the operator.  |
| [`resolve_type`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.resolve_type)(ctx, type)                     | Returns the resolved input or output property.  |
| [`to_json`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.to_json)()                                        | Returns a JSON representation of the operator.  |

#### *property* config

The `OperatorConfig` for the operator.

#### resolve_input(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the
operator. This method should never be called directly. Instead
use [`resolve_type()`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.resolve_type).

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called each time the input
changes.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### execute(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Executes the operator.

Subclasses must implement this method.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  JSON serializable data, or None

#### add_secrets(secrets)

Adds secrets to the operator.

* **Parameters:**
  **secrets** – a list of secrets

#### *property* builtin

Whether the operator is builtin.

#### method_to_uri(method_name)

Converts a method name to a URI.

* **Parameters:**
  **method_name** – the method name
* **Returns:**
  a URI

#### *property* name

#### resolve_delegation(ctx) → [bool](../../api/fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) | None

Returns the resolved *forced* delegation flag.

Subclasses can implement this method to decide if delegated execution
should be *forced* for the given operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  whether the operation should be delegated (True), run immediately
  (False), or None to defer to [`resolve_execution_options()`](#plugins.label_schemas.operators.ListLabelSchemaDocsOperator.resolve_execution_options) to
  specify the available options

#### resolve_execution_options(ctx)

Returns the resolved execution options.

Subclasses can implement this method to define the execution options
available for the operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.executor.ExecutionOptions`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionOptions) instance

#### resolve_output(ctx)

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the
operator.

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called after the operator is
executed.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### resolve_placement(ctx)

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Placement`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Placement), or None

#### resolve_run_name(ctx)

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a string, or None

#### resolve_type(ctx, type)

Returns the resolved input or output property.

* **Parameters:**
  * **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
  * **type** – the type of property to resolve, either `"inputs"` or
    `"outputs"`
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### *property* risk_level

The effective risk level of the operator, which is used by guardrail
systems of an agent to classify tool calls.

#### to_json()

Returns a JSON representation of the operator.

* **Returns:**
  a JSON dict

#### *property* uri

The unique identifier of the operator:
`plugin_name/operator_name`.

### *class* plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator(\_builtin=False)

Bases: [`Operator`](../../api/fiftyone.operators.operator.md#fiftyone.operators.operator.Operator)

`{ok, undeclared: {path: [attribute names]}}`: the attributes a
schema defines that the dataset’s field schema has not declared, so the
App’s sidebar and filters do not show them. Reads the field schema
only; no samples are scanned.

**Attributes:**

| [`config`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.config)         | The `OperatorConfig` for the operator.                                                                           |
|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [`builtin`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.builtin)       | Whether the operator is builtin.                                                                                 |
| [`name`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.name)             |                                                                                                                  |
| [`risk_level`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.risk_level) | The effective risk level of the operator, which is used by guardrail systems of an agent to classify tool calls. |
| [`uri`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.uri)               | The unique identifier of the operator: `plugin_name/operator_name`.                                              |

**Methods:**

| [`resolve_input`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.resolve_input)(ctx)                         | Returns the resolved input property.            |
|--------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [`execute`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.execute)(ctx)                                     | Executes the operator.                          |
| [`add_secrets`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.add_secrets)(secrets)                         | Adds secrets to the operator.                   |
| [`method_to_uri`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.method_to_uri)(method_name)                 | Converts a method name to a URI.                |
| [`resolve_delegation`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.resolve_delegation)(ctx)               | Returns the resolved *forced* delegation flag.  |
| [`resolve_execution_options`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.resolve_execution_options)(ctx) | Returns the resolved execution options.         |
| [`resolve_output`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.resolve_output)(ctx)                       | Returns the resolved output property.           |
| [`resolve_placement`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.resolve_placement)(ctx)                 | Returns the resolved placement of the operator. |
| [`resolve_run_name`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.resolve_run_name)(ctx)                   | Returns the resolved run name of the operator.  |
| [`resolve_type`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.resolve_type)(ctx, type)                     | Returns the resolved input or output property.  |
| [`to_json`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.to_json)()                                        | Returns a JSON representation of the operator.  |

#### *property* config

The `OperatorConfig` for the operator.

#### resolve_input(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the
operator. This method should never be called directly. Instead
use [`resolve_type()`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.resolve_type).

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called each time the input
changes.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### execute(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Executes the operator.

Subclasses must implement this method.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  JSON serializable data, or None

#### add_secrets(secrets)

Adds secrets to the operator.

* **Parameters:**
  **secrets** – a list of secrets

#### *property* builtin

Whether the operator is builtin.

#### method_to_uri(method_name)

Converts a method name to a URI.

* **Parameters:**
  **method_name** – the method name
* **Returns:**
  a URI

#### *property* name

#### resolve_delegation(ctx) → [bool](../../api/fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) | None

Returns the resolved *forced* delegation flag.

Subclasses can implement this method to decide if delegated execution
should be *forced* for the given operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  whether the operation should be delegated (True), run immediately
  (False), or None to defer to [`resolve_execution_options()`](#plugins.label_schemas.operators.ListUndeclaredLabelSchemaAttributesOperator.resolve_execution_options) to
  specify the available options

#### resolve_execution_options(ctx)

Returns the resolved execution options.

Subclasses can implement this method to define the execution options
available for the operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.executor.ExecutionOptions`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionOptions) instance

#### resolve_output(ctx)

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the
operator.

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called after the operator is
executed.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### resolve_placement(ctx)

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Placement`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Placement), or None

#### resolve_run_name(ctx)

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a string, or None

#### resolve_type(ctx, type)

Returns the resolved input or output property.

* **Parameters:**
  * **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
  * **type** – the type of property to resolve, either `"inputs"` or
    `"outputs"`
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### *property* risk_level

The effective risk level of the operator, which is used by guardrail
systems of an agent to classify tool calls.

#### to_json()

Returns a JSON representation of the operator.

* **Returns:**
  a JSON dict

#### *property* uri

The unique identifier of the operator:
`plugin_name/operator_name`.

### *class* plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator(\_builtin=False)

Bases: [`Operator`](../../api/fiftyone.operators.operator.md#fiftyone.operators.operator.Operator)

Declares a schema’s undeclared attributes on the dataset’s field
schema. `{ok, declared: [paths], skipped: {path: [attribute names]}}`;
skipped attributes hold values of mixed types and cannot be declared.
Scans the values of the attributes it declares.

**Attributes:**

| [`config`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.config)         | The `OperatorConfig` for the operator.                                                                           |
|--------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [`builtin`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.builtin)       | Whether the operator is builtin.                                                                                 |
| [`name`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.name)             |                                                                                                                  |
| [`risk_level`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.risk_level) | The effective risk level of the operator, which is used by guardrail systems of an agent to classify tool calls. |
| [`uri`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.uri)               | The unique identifier of the operator: `plugin_name/operator_name`.                                              |

**Methods:**

| [`resolve_input`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.resolve_input)(ctx)                         | Returns the resolved input property.            |
|-------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [`execute`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.execute)(ctx)                                     | Executes the operator.                          |
| [`add_secrets`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.add_secrets)(secrets)                         | Adds secrets to the operator.                   |
| [`method_to_uri`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.method_to_uri)(method_name)                 | Converts a method name to a URI.                |
| [`resolve_delegation`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.resolve_delegation)(ctx)               | Returns the resolved *forced* delegation flag.  |
| [`resolve_execution_options`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.resolve_execution_options)(ctx) | Returns the resolved execution options.         |
| [`resolve_output`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.resolve_output)(ctx)                       | Returns the resolved output property.           |
| [`resolve_placement`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.resolve_placement)(ctx)                 | Returns the resolved placement of the operator. |
| [`resolve_run_name`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.resolve_run_name)(ctx)                   | Returns the resolved run name of the operator.  |
| [`resolve_type`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.resolve_type)(ctx, type)                     | Returns the resolved input or output property.  |
| [`to_json`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.to_json)()                                        | Returns a JSON representation of the operator.  |

#### *property* config

The `OperatorConfig` for the operator.

#### resolve_input(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the
operator. This method should never be called directly. Instead
use [`resolve_type()`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.resolve_type).

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called each time the input
changes.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### execute(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Executes the operator.

Subclasses must implement this method.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  JSON serializable data, or None

#### add_secrets(secrets)

Adds secrets to the operator.

* **Parameters:**
  **secrets** – a list of secrets

#### *property* builtin

Whether the operator is builtin.

#### method_to_uri(method_name)

Converts a method name to a URI.

* **Parameters:**
  **method_name** – the method name
* **Returns:**
  a URI

#### *property* name

#### resolve_delegation(ctx) → [bool](../../api/fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) | None

Returns the resolved *forced* delegation flag.

Subclasses can implement this method to decide if delegated execution
should be *forced* for the given operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  whether the operation should be delegated (True), run immediately
  (False), or None to defer to [`resolve_execution_options()`](#plugins.label_schemas.operators.DeclareLabelSchemaAttributesOperator.resolve_execution_options) to
  specify the available options

#### resolve_execution_options(ctx)

Returns the resolved execution options.

Subclasses can implement this method to define the execution options
available for the operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.executor.ExecutionOptions`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionOptions) instance

#### resolve_output(ctx)

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the
operator.

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called after the operator is
executed.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### resolve_placement(ctx)

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Placement`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Placement), or None

#### resolve_run_name(ctx)

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a string, or None

#### resolve_type(ctx, type)

Returns the resolved input or output property.

* **Parameters:**
  * **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
  * **type** – the type of property to resolve, either `"inputs"` or
    `"outputs"`
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### *property* risk_level

The effective risk level of the operator, which is used by guardrail
systems of an agent to classify tool calls.

#### to_json()

Returns a JSON representation of the operator.

* **Returns:**
  a JSON dict

#### *property* uri

The unique identifier of the operator:
`plugin_name/operator_name`.

### *class* plugins.label_schemas.operators.GetLabelSchemaDocOperator(\_builtin=False)

Bases: [`Operator`](../../api/fiftyone.operators.operator.md#fiftyone.operators.operator.Operator)

`{ok, schema}` — the full doc (label_schema + visibility).

`include_resolved` additionally returns `resolved` (the
[`fiftyone.core.label_schema_docs.resolve()`](../../api/fiftyone.core.label_schema_docs.md#fiftyone.core.label_schema_docs.resolve) payload over the
dataset’s schema universe) — the Explore “schema lens” consumes its
`excluded_paths` so lens semantics match task semantics exactly.

**Attributes:**

| [`config`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.config)         | The `OperatorConfig` for the operator.                                                                           |
|---------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [`builtin`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.builtin)       | Whether the operator is builtin.                                                                                 |
| [`name`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.name)             |                                                                                                                  |
| [`risk_level`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.risk_level) | The effective risk level of the operator, which is used by guardrail systems of an agent to classify tool calls. |
| [`uri`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.uri)               | The unique identifier of the operator: `plugin_name/operator_name`.                                              |

**Methods:**

| [`resolve_input`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.resolve_input)(ctx)                         | Returns the resolved input property.            |
|--------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [`execute`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.execute)(ctx)                                     | Executes the operator.                          |
| [`add_secrets`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.add_secrets)(secrets)                         | Adds secrets to the operator.                   |
| [`method_to_uri`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.method_to_uri)(method_name)                 | Converts a method name to a URI.                |
| [`resolve_delegation`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.resolve_delegation)(ctx)               | Returns the resolved *forced* delegation flag.  |
| [`resolve_execution_options`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.resolve_execution_options)(ctx) | Returns the resolved execution options.         |
| [`resolve_output`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.resolve_output)(ctx)                       | Returns the resolved output property.           |
| [`resolve_placement`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.resolve_placement)(ctx)                 | Returns the resolved placement of the operator. |
| [`resolve_run_name`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.resolve_run_name)(ctx)                   | Returns the resolved run name of the operator.  |
| [`resolve_type`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.resolve_type)(ctx, type)                     | Returns the resolved input or output property.  |
| [`to_json`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.to_json)()                                        | Returns a JSON representation of the operator.  |

#### *property* config

The `OperatorConfig` for the operator.

#### resolve_input(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the
operator. This method should never be called directly. Instead
use [`resolve_type()`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.resolve_type).

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called each time the input
changes.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### execute(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Executes the operator.

Subclasses must implement this method.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  JSON serializable data, or None

#### add_secrets(secrets)

Adds secrets to the operator.

* **Parameters:**
  **secrets** – a list of secrets

#### *property* builtin

Whether the operator is builtin.

#### method_to_uri(method_name)

Converts a method name to a URI.

* **Parameters:**
  **method_name** – the method name
* **Returns:**
  a URI

#### *property* name

#### resolve_delegation(ctx) → [bool](../../api/fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) | None

Returns the resolved *forced* delegation flag.

Subclasses can implement this method to decide if delegated execution
should be *forced* for the given operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  whether the operation should be delegated (True), run immediately
  (False), or None to defer to [`resolve_execution_options()`](#plugins.label_schemas.operators.GetLabelSchemaDocOperator.resolve_execution_options) to
  specify the available options

#### resolve_execution_options(ctx)

Returns the resolved execution options.

Subclasses can implement this method to define the execution options
available for the operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.executor.ExecutionOptions`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionOptions) instance

#### resolve_output(ctx)

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the
operator.

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called after the operator is
executed.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### resolve_placement(ctx)

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Placement`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Placement), or None

#### resolve_run_name(ctx)

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a string, or None

#### resolve_type(ctx, type)

Returns the resolved input or output property.

* **Parameters:**
  * **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
  * **type** – the type of property to resolve, either `"inputs"` or
    `"outputs"`
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### *property* risk_level

The effective risk level of the operator, which is used by guardrail
systems of an agent to classify tool calls.

#### to_json()

Returns a JSON representation of the operator.

* **Returns:**
  a JSON dict

#### *property* uri

The unique identifier of the operator:
`plugin_name/operator_name`.

### *class* plugins.label_schemas.operators.CreateLabelSchemaDocOperator(\_builtin=False)

Bases: [`Operator`](../../api/fiftyone.operators.operator.md#fiftyone.operators.operator.Operator)

Creates a doc; `from_dataset` seeds `label_schema` from the
dataset’s stored per-field schemas (all fields annotate-tier by
membership, default `explore` for the rest — day-one parity).

**Attributes:**

| [`config`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.config)         | The `OperatorConfig` for the operator.                                                                           |
|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [`builtin`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.builtin)       | Whether the operator is builtin.                                                                                 |
| [`name`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.name)             |                                                                                                                  |
| [`risk_level`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.risk_level) | The effective risk level of the operator, which is used by guardrail systems of an agent to classify tool calls. |
| [`uri`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.uri)               | The unique identifier of the operator: `plugin_name/operator_name`.                                              |

**Methods:**

| [`resolve_input`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.resolve_input)(ctx)                         | Returns the resolved input property.            |
|-----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [`execute`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.execute)(ctx)                                     | Executes the operator.                          |
| [`add_secrets`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.add_secrets)(secrets)                         | Adds secrets to the operator.                   |
| [`method_to_uri`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.method_to_uri)(method_name)                 | Converts a method name to a URI.                |
| [`resolve_delegation`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.resolve_delegation)(ctx)               | Returns the resolved *forced* delegation flag.  |
| [`resolve_execution_options`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.resolve_execution_options)(ctx) | Returns the resolved execution options.         |
| [`resolve_output`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.resolve_output)(ctx)                       | Returns the resolved output property.           |
| [`resolve_placement`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.resolve_placement)(ctx)                 | Returns the resolved placement of the operator. |
| [`resolve_run_name`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.resolve_run_name)(ctx)                   | Returns the resolved run name of the operator.  |
| [`resolve_type`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.resolve_type)(ctx, type)                     | Returns the resolved input or output property.  |
| [`to_json`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.to_json)()                                        | Returns a JSON representation of the operator.  |

#### *property* config

The `OperatorConfig` for the operator.

#### resolve_input(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the
operator. This method should never be called directly. Instead
use [`resolve_type()`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.resolve_type).

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called each time the input
changes.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### execute(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Executes the operator.

Subclasses must implement this method.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  JSON serializable data, or None

#### add_secrets(secrets)

Adds secrets to the operator.

* **Parameters:**
  **secrets** – a list of secrets

#### *property* builtin

Whether the operator is builtin.

#### method_to_uri(method_name)

Converts a method name to a URI.

* **Parameters:**
  **method_name** – the method name
* **Returns:**
  a URI

#### *property* name

#### resolve_delegation(ctx) → [bool](../../api/fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) | None

Returns the resolved *forced* delegation flag.

Subclasses can implement this method to decide if delegated execution
should be *forced* for the given operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  whether the operation should be delegated (True), run immediately
  (False), or None to defer to [`resolve_execution_options()`](#plugins.label_schemas.operators.CreateLabelSchemaDocOperator.resolve_execution_options) to
  specify the available options

#### resolve_execution_options(ctx)

Returns the resolved execution options.

Subclasses can implement this method to define the execution options
available for the operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.executor.ExecutionOptions`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionOptions) instance

#### resolve_output(ctx)

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the
operator.

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called after the operator is
executed.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### resolve_placement(ctx)

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Placement`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Placement), or None

#### resolve_run_name(ctx)

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a string, or None

#### resolve_type(ctx, type)

Returns the resolved input or output property.

* **Parameters:**
  * **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
  * **type** – the type of property to resolve, either `"inputs"` or
    `"outputs"`
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### *property* risk_level

The effective risk level of the operator, which is used by guardrail
systems of an agent to classify tool calls.

#### to_json()

Returns a JSON representation of the operator.

* **Returns:**
  a JSON dict

#### *property* uri

The unique identifier of the operator:
`plugin_name/operator_name`.

### *class* plugins.label_schemas.operators.UpdateLabelSchemaDocOperator(\_builtin=False)

Bases: [`Operator`](../../api/fiftyone.operators.operator.md#fiftyone.operators.operator.Operator)

Partial update of name/description/label_schema/visibility.

**Attributes:**

| [`config`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.config)         | The `OperatorConfig` for the operator.                                                                           |
|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [`builtin`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.builtin)       | Whether the operator is builtin.                                                                                 |
| [`name`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.name)             |                                                                                                                  |
| [`risk_level`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.risk_level) | The effective risk level of the operator, which is used by guardrail systems of an agent to classify tool calls. |
| [`uri`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.uri)               | The unique identifier of the operator: `plugin_name/operator_name`.                                              |

**Methods:**

| [`resolve_input`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.resolve_input)(ctx)                         | Returns the resolved input property.            |
|-----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [`execute`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.execute)(ctx)                                     | Executes the operator.                          |
| [`add_secrets`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.add_secrets)(secrets)                         | Adds secrets to the operator.                   |
| [`method_to_uri`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.method_to_uri)(method_name)                 | Converts a method name to a URI.                |
| [`resolve_delegation`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.resolve_delegation)(ctx)               | Returns the resolved *forced* delegation flag.  |
| [`resolve_execution_options`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.resolve_execution_options)(ctx) | Returns the resolved execution options.         |
| [`resolve_output`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.resolve_output)(ctx)                       | Returns the resolved output property.           |
| [`resolve_placement`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.resolve_placement)(ctx)                 | Returns the resolved placement of the operator. |
| [`resolve_run_name`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.resolve_run_name)(ctx)                   | Returns the resolved run name of the operator.  |
| [`resolve_type`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.resolve_type)(ctx, type)                     | Returns the resolved input or output property.  |
| [`to_json`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.to_json)()                                        | Returns a JSON representation of the operator.  |

#### *property* config

The `OperatorConfig` for the operator.

#### resolve_input(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the
operator. This method should never be called directly. Instead
use [`resolve_type()`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.resolve_type).

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called each time the input
changes.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### execute(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Executes the operator.

Subclasses must implement this method.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  JSON serializable data, or None

#### add_secrets(secrets)

Adds secrets to the operator.

* **Parameters:**
  **secrets** – a list of secrets

#### *property* builtin

Whether the operator is builtin.

#### method_to_uri(method_name)

Converts a method name to a URI.

* **Parameters:**
  **method_name** – the method name
* **Returns:**
  a URI

#### *property* name

#### resolve_delegation(ctx) → [bool](../../api/fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) | None

Returns the resolved *forced* delegation flag.

Subclasses can implement this method to decide if delegated execution
should be *forced* for the given operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  whether the operation should be delegated (True), run immediately
  (False), or None to defer to [`resolve_execution_options()`](#plugins.label_schemas.operators.UpdateLabelSchemaDocOperator.resolve_execution_options) to
  specify the available options

#### resolve_execution_options(ctx)

Returns the resolved execution options.

Subclasses can implement this method to define the execution options
available for the operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.executor.ExecutionOptions`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionOptions) instance

#### resolve_output(ctx)

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the
operator.

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called after the operator is
executed.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### resolve_placement(ctx)

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Placement`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Placement), or None

#### resolve_run_name(ctx)

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a string, or None

#### resolve_type(ctx, type)

Returns the resolved input or output property.

* **Parameters:**
  * **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
  * **type** – the type of property to resolve, either `"inputs"` or
    `"outputs"`
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### *property* risk_level

The effective risk level of the operator, which is used by guardrail
systems of an agent to classify tool calls.

#### to_json()

Returns a JSON representation of the operator.

* **Returns:**
  a JSON dict

#### *property* uri

The unique identifier of the operator:
`plugin_name/operator_name`.

### *class* plugins.label_schemas.operators.DeleteLabelSchemaDocOperator(\_builtin=False)

Bases: [`Operator`](../../api/fiftyone.operators.operator.md#fiftyone.operators.operator.Operator)

Deletes a doc. Stages referencing it degrade to unrestricted.

**Attributes:**

| [`config`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.config)         | The `OperatorConfig` for the operator.                                                                           |
|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [`builtin`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.builtin)       | Whether the operator is builtin.                                                                                 |
| [`name`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.name)             |                                                                                                                  |
| [`risk_level`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.risk_level) | The effective risk level of the operator, which is used by guardrail systems of an agent to classify tool calls. |
| [`uri`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.uri)               | The unique identifier of the operator: `plugin_name/operator_name`.                                              |

**Methods:**

| [`resolve_input`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.resolve_input)(ctx)                         | Returns the resolved input property.            |
|-----------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [`execute`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.execute)(ctx)                                     | Executes the operator.                          |
| [`add_secrets`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.add_secrets)(secrets)                         | Adds secrets to the operator.                   |
| [`method_to_uri`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.method_to_uri)(method_name)                 | Converts a method name to a URI.                |
| [`resolve_delegation`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.resolve_delegation)(ctx)               | Returns the resolved *forced* delegation flag.  |
| [`resolve_execution_options`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.resolve_execution_options)(ctx) | Returns the resolved execution options.         |
| [`resolve_output`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.resolve_output)(ctx)                       | Returns the resolved output property.           |
| [`resolve_placement`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.resolve_placement)(ctx)                 | Returns the resolved placement of the operator. |
| [`resolve_run_name`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.resolve_run_name)(ctx)                   | Returns the resolved run name of the operator.  |
| [`resolve_type`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.resolve_type)(ctx, type)                     | Returns the resolved input or output property.  |
| [`to_json`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.to_json)()                                        | Returns a JSON representation of the operator.  |

#### *property* config

The `OperatorConfig` for the operator.

#### resolve_input(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the
operator. This method should never be called directly. Instead
use [`resolve_type()`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.resolve_type).

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called each time the input
changes.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### execute(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Executes the operator.

Subclasses must implement this method.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  JSON serializable data, or None

#### add_secrets(secrets)

Adds secrets to the operator.

* **Parameters:**
  **secrets** – a list of secrets

#### *property* builtin

Whether the operator is builtin.

#### method_to_uri(method_name)

Converts a method name to a URI.

* **Parameters:**
  **method_name** – the method name
* **Returns:**
  a URI

#### *property* name

#### resolve_delegation(ctx) → [bool](../../api/fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) | None

Returns the resolved *forced* delegation flag.

Subclasses can implement this method to decide if delegated execution
should be *forced* for the given operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  whether the operation should be delegated (True), run immediately
  (False), or None to defer to [`resolve_execution_options()`](#plugins.label_schemas.operators.DeleteLabelSchemaDocOperator.resolve_execution_options) to
  specify the available options

#### resolve_execution_options(ctx)

Returns the resolved execution options.

Subclasses can implement this method to define the execution options
available for the operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.executor.ExecutionOptions`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionOptions) instance

#### resolve_output(ctx)

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the
operator.

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called after the operator is
executed.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### resolve_placement(ctx)

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Placement`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Placement), or None

#### resolve_run_name(ctx)

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a string, or None

#### resolve_type(ctx, type)

Returns the resolved input or output property.

* **Parameters:**
  * **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
  * **type** – the type of property to resolve, either `"inputs"` or
    `"outputs"`
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### *property* risk_level

The effective risk level of the operator, which is used by guardrail
systems of an agent to classify tool calls.

#### to_json()

Returns a JSON representation of the operator.

* **Returns:**
  a JSON dict

#### *property* uri

The unique identifier of the operator:
`plugin_name/operator_name`.

### *class* plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator(\_builtin=False)

Bases: [`Operator`](../../api/fiftyone.operators.operator.md#fiftyone.operators.operator.Operator)

Fans a newly created dataset field out to every custom schema:
annotate-tier content in the schema it was created in (if any),
explicit `hidden` everywhere else. Returns `{ok, updated}`.

**Attributes:**

| [`config`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.config)         | The `OperatorConfig` for the operator.                                                                           |
|-----------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| [`builtin`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.builtin)       | Whether the operator is builtin.                                                                                 |
| [`name`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.name)             |                                                                                                                  |
| [`risk_level`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.risk_level) | The effective risk level of the operator, which is used by guardrail systems of an agent to classify tool calls. |
| [`uri`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.uri)               | The unique identifier of the operator: `plugin_name/operator_name`.                                              |

**Methods:**

| [`resolve_input`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.resolve_input)(ctx)                         | Returns the resolved input property.            |
|----------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [`execute`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.execute)(ctx)                                     | Executes the operator.                          |
| [`add_secrets`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.add_secrets)(secrets)                         | Adds secrets to the operator.                   |
| [`method_to_uri`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.method_to_uri)(method_name)                 | Converts a method name to a URI.                |
| [`resolve_delegation`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.resolve_delegation)(ctx)               | Returns the resolved *forced* delegation flag.  |
| [`resolve_execution_options`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.resolve_execution_options)(ctx) | Returns the resolved execution options.         |
| [`resolve_output`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.resolve_output)(ctx)                       | Returns the resolved output property.           |
| [`resolve_placement`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.resolve_placement)(ctx)                 | Returns the resolved placement of the operator. |
| [`resolve_run_name`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.resolve_run_name)(ctx)                   | Returns the resolved run name of the operator.  |
| [`resolve_type`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.resolve_type)(ctx, type)                     | Returns the resolved input or output property.  |
| [`to_json`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.to_json)()                                        | Returns a JSON representation of the operator.  |

#### *property* config

The `OperatorConfig` for the operator.

#### resolve_input(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Returns the resolved input property.

Subclasses can implement this method to define the inputs to the
operator. This method should never be called directly. Instead
use [`resolve_type()`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.resolve_type).

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called each time the input
changes.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### execute(ctx: [ExecutionContext](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext))

Executes the operator.

Subclasses must implement this method.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  JSON serializable data, or None

#### add_secrets(secrets)

Adds secrets to the operator.

* **Parameters:**
  **secrets** – a list of secrets

#### *property* builtin

Whether the operator is builtin.

#### method_to_uri(method_name)

Converts a method name to a URI.

* **Parameters:**
  **method_name** – the method name
* **Returns:**
  a URI

#### *property* name

#### resolve_delegation(ctx) → [bool](../../api/fiftyone.core.stages.md#fiftyone.core.stages.Exists.bool) | None

Returns the resolved *forced* delegation flag.

Subclasses can implement this method to decide if delegated execution
should be *forced* for the given operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  whether the operation should be delegated (True), run immediately
  (False), or None to defer to [`resolve_execution_options()`](#plugins.label_schemas.operators.PropagateLabelSchemaFieldOperator.resolve_execution_options) to
  specify the available options

#### resolve_execution_options(ctx)

Returns the resolved execution options.

Subclasses can implement this method to define the execution options
available for the operation.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.executor.ExecutionOptions`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionOptions) instance

#### resolve_output(ctx)

Returns the resolved output property.

Subclasses can implement this method to define the outputs of the
operator.

By default, this method is called once when the operator is created.
If the operator is dynamic, this method is called after the operator is
executed.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### resolve_placement(ctx)

Returns the resolved placement of the operator.

Subclasses can implement this method to define the placement of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a [`fiftyone.operators.types.Placement`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Placement), or None

#### resolve_run_name(ctx)

Returns the resolved run name of the operator.

Subclasses can implement this method to define the run name of the
operator.

* **Parameters:**
  **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
* **Returns:**
  a string, or None

#### resolve_type(ctx, type)

Returns the resolved input or output property.

* **Parameters:**
  * **ctx** – the [`fiftyone.operators.executor.ExecutionContext`](../../api/fiftyone.operators.executor.md#fiftyone.operators.executor.ExecutionContext)
  * **type** – the type of property to resolve, either `"inputs"` or
    `"outputs"`
* **Returns:**
  a [`fiftyone.operators.types.Property`](../../api/fiftyone.operators.types.md#fiftyone.operators.types.Property), or None

#### *property* risk_level

The effective risk level of the operator, which is used by guardrail
systems of an agent to classify tool calls.

#### to_json()

Returns a JSON representation of the operator.

* **Returns:**
  a JSON dict

#### *property* uri

The unique identifier of the operator:
`plugin_name/operator_name`.
