"""
Python SDK for OpenFGA

API version: 1.x
Website: https://openfga.dev
Documentation: https://openfga.dev/docs
Support: https://openfga.dev/community
License: [Apache-2.0](https://github.com/openfga/python-sdk/blob/main/LICENSE)

NOTE: This file was auto generated by OpenAPI Generator (https://openapi-generator.tech). DO NOT EDIT.
"""

from openfga_sdk.client.models.write_conflict_opts import ConflictOptions
from openfga_sdk.client.models.write_transaction_opts import WriteTransactionOpts


class ClientWriteOptions:
    """
    OpenFGA client write options
    """

    def __init__(
        self,
        authorization_model_id: str | None = None,
        transaction: WriteTransactionOpts | None = None,
        conflict: ConflictOptions | None = None,
    ) -> None:
        self._authorization_model_id = authorization_model_id
        self._transaction = transaction
        self._conflict = conflict

    @property
    def authorization_model_id(self) -> str | None:
        """
        Return authorization_model_id
        """
        return self._authorization_model_id

    @authorization_model_id.setter
    def authorization_model_id(
        self,
        value: str | None,
    ) -> None:
        """
        Set authorization_model_id
        """
        self._authorization_model_id = value

    @property
    def transaction(self) -> WriteTransactionOpts | None:
        """
        Return transaction
        """
        return self._transaction

    @transaction.setter
    def transaction(
        self,
        value: WriteTransactionOpts | None,
    ) -> None:
        """
        Set transaction
        """
        self._transaction = value

    @property
    def conflict(self) -> ConflictOptions | None:
        """
        Return conflict
        """
        return self._conflict

    @conflict.setter
    def conflict(
        self,
        value: ConflictOptions | None,
    ) -> None:
        """
        Set conflict
        """
        self._conflict = value
