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

# Patch Mixin

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L0")

# module `patch_mixin`

Mixin class containing PATCH specific methods

To be used by OpenMetadata class

## **Global Variables**

* **OWNER\_TYPES**

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L57")

## function `update_column_tags`

```python theme={null}
update_column_tags(
    columns: List[Column],
    column_tag: ColumnTag,
    operation: PatchOperation
) → None
```

Inplace update for the incoming column list

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L82")

## function `update_column_description`

```python theme={null}
update_column_description(
    columns: List[Column],
    column_fqn: str,
    description: str,
    force: bool = False
) → None
```

Inplace update for the incoming column list

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L104")

## class `OMetaPatchMixin`

OpenMetadata API methods related to Tables.

To be inherited by OpenMetadata

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L113")

### method `patch`

```python theme={null}
patch(entity: Type[~T], source: ~T, destination: ~T) → Optional[~T]
```

Given an Entity type and Source entity and Destination entity, generate a JSON Patch and apply it.

**Args:**

`entity` (T): Entity Type

`source`: Source payload which is current state of the source in OpenMetadata

`destination`: payload with changes applied to the source.

**Returns:**

Updated Entity

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L457")

### method `patch_automation_workflow_response`

```python theme={null}
patch_automation_workflow_response(
    automation_workflow: Workflow,
    test_connection_result: TestConnectionResult,
    workflow_status: WorkflowStatus
) → None
```

Given an AutomationWorkflow, JSON PATCH the status and response.

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L417")

### method `patch_column_description`

```python theme={null}
patch_column_description(
    table: Table,
    column_fqn: str,
    description: str,
    force: bool = False
) → Optional[~T]
```

Given an Table , Column FQN, JSON PATCH the description of the column

**Args:**

`src_table`: origin Table object

`column_fqn`: FQN of the column to update

`description`: new description to add

`force`: if True, we will patch any existing description. Otherwise, we will maintain the existing data.

**Returns:**

Updated Entity

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L398")

### method `patch_column_tag`

```python theme={null}
patch_column_tag(
    table: Table,
    column_fqn: str,
    tag_label: TagLabel,
    operation: Union[ForwardRef(<ADD: 'add'>), ForwardRef(<REMOVE: 'remove'>)] = <PatchOperation.ADD: 'add'>
) → Optional[~T]
```

Will be deprecated in 1.3

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L357")

### method `patch_column_tags`

```python theme={null}
patch_column_tags(
    table: Table,
    column_tags: List[ColumnTag],
    operation: Union[ForwardRef(<ADD: 'add'>), ForwardRef(<REMOVE: 'remove'>)] = <PatchOperation.ADD: 'add'>
) → Optional[~T]
```

Given an Entity ID, JSON PATCH the tag of the column

**Args:**

`entity_id`: ID

`tag_label`: TagLabel to add or remove

`column_name`: column to update

`operation`: Patch Operation to add or remove

**Returns:**

Updated Entity

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L159")

### method `patch_description`

```python theme={null}
patch_description(
    entity: Type[~T],
    source: ~T,
    description: str,
    force: bool = False
) → Optional[~T]
```

Given an Entity type and ID, JSON PATCH the description.

**Args:**

`entity` (T): Entity Type

`source`: source entity object

`description`: new description to add

`force`: if True, we will patch any existing description. Otherwise, we will maintain the existing data.

**Returns:**

Updated Entity

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L516")

### method `patch_domain`

```python theme={null}
patch_domain(entity: BaseModel, domain: Domain) → Optional[BaseModel]
```

Patch domain data for an Entity

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L494")

### method `patch_life_cycle`

```python theme={null}
patch_life_cycle(entity: BaseModel, life_cycle: LifeCycle) → Optional[BaseModel]
```

Patch life cycle data for a entity

**Args:**

`entity`: Entity to update the life cycle for

`life_cycle_data`: Life Cycle data to add

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L317")

### method `patch_owner`

```python theme={null}
patch_owner(
    entity: Type[~T],
    source: ~T,
    owner: EntityReference = None,
    force: bool = False
) → Optional[~T]
```

Given an Entity type and ID, JSON PATCH the owner. If not owner Entity type and not owner ID are provided, the owner is removed.

**Args:**

`entity` (T): Entity Type of the entity to be patched

`entity_id`: ID of the entity to be patched

`owner`: Entity Reference of the owner. If None, the owner will be removed

`force`: if True, we will patch any existing owner. Otherwise, we will maintain the existing data.

**Returns:**

Updated Entity

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L205")

### method `patch_table_constraints`

```python theme={null}
patch_table_constraints(
    table: Table,
    constraints: List[TableConstraint]
) → Optional[~T]
```

Given an Entity ID, JSON PATCH the table constraints of table

**Args:**

`source_table`: Origin table

`description`: new description to add

`table_constraints`: table constraints to add

**Returns:**

Updated Entity

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L302")

### method `patch_tag`

```python theme={null}
patch_tag(
    entity: Type[~T],
    source: ~T,
    tag_label: TagLabel,
    operation: Union[ForwardRef(<ADD: 'add'>), ForwardRef(<REMOVE: 'remove'>)] = <PatchOperation.ADD: 'add'>
) → Optional[~T]
```

Will be deprecated in 1.3

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L261")

### method `patch_tags`

```python theme={null}
patch_tags(
    entity: Type[~T],
    source: ~T,
    tag_labels: List[TagLabel],
    operation: Union[ForwardRef(<ADD: 'add'>), ForwardRef(<REMOVE: 'remove'>)] = <PatchOperation.ADD: 'add'>
) → Optional[~T]
```

Given an Entity type and ID, JSON PATCH the tag.

**Args:**

`entity` (T): Entity Type

`source`: Source entity object

`tag_label`: TagLabel to add or remove

`operation`: Patch Operation to add or remove the tag.

**Returns:**

Updated Entity

***

[<img src="https://img.shields.io/badge/-source-cccccc?style=flat-square" />](https://github.com/open-metadata/OpenMetadata/tree/main/ingestion/src/metadata/ingestion/ometa/mixins/patch_mixin.py#L234")

### method `patch_test_case_definition`

```python theme={null}
patch_test_case_definition(
    source: TestCase,
    entity_link: str,
    test_case_parameter_values: Optional[List[TestCaseParameterValue]] = None
) → Optional[TestCase]
```

Given a test case and a test case definition JSON PATCH the test case

**Args:**

`test_case`: test case object

`test_case_definition`: test case definition to add

***
