# coding: utf-8

"""
    Airtable API

    OpenAPI spec for Airtable's REST API  # noqa: E501

    OpenAPI spec version: 2024-12-27
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""

import pprint
import re  # noqa: F401

import six

class FieldOptions(object):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """
    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'prompt': 'list[OneOfFieldOptionsPromptItems]',
        'referenced_field_ids': 'list[str]'
    }

    attribute_map = {
        'prompt': 'prompt',
        'referenced_field_ids': 'referencedFieldIds'
    }

    def __init__(self, prompt=None, referenced_field_ids=None):  # noqa: E501
        """FieldOptions - a model defined in Swagger"""  # noqa: E501
        self._prompt = None
        self._referenced_field_ids = None
        self.discriminator = None
        if prompt is not None:
            self.prompt = prompt
        if referenced_field_ids is not None:
            self.referenced_field_ids = referenced_field_ids

    @property
    def prompt(self):
        """Gets the prompt of this FieldOptions.  # noqa: E501

        The prompt that is used to generate the results in the AI field, additional object types may be added in the future. Currently, this is an array of strings or objects that identify any fields interpolated into the prompt. The prompt will not currently be provided if this field config is within another fields configuration (like a lookup field).  # noqa: E501

        :return: The prompt of this FieldOptions.  # noqa: E501
        :rtype: list[OneOfFieldOptionsPromptItems]
        """
        return self._prompt

    @prompt.setter
    def prompt(self, prompt):
        """Sets the prompt of this FieldOptions.

        The prompt that is used to generate the results in the AI field, additional object types may be added in the future. Currently, this is an array of strings or objects that identify any fields interpolated into the prompt. The prompt will not currently be provided if this field config is within another fields configuration (like a lookup field).  # noqa: E501

        :param prompt: The prompt of this FieldOptions.  # noqa: E501
        :type: list[OneOfFieldOptionsPromptItems]
        """

        self._prompt = prompt

    @property
    def referenced_field_ids(self):
        """Gets the referenced_field_ids of this FieldOptions.  # noqa: E501

        The other fields in the record that are used in the ai field. The referencedFieldIds will not currently be provided if this field config is within another fields configuration (like a lookup field).  # noqa: E501

        :return: The referenced_field_ids of this FieldOptions.  # noqa: E501
        :rtype: list[str]
        """
        return self._referenced_field_ids

    @referenced_field_ids.setter
    def referenced_field_ids(self, referenced_field_ids):
        """Sets the referenced_field_ids of this FieldOptions.

        The other fields in the record that are used in the ai field. The referencedFieldIds will not currently be provided if this field config is within another fields configuration (like a lookup field).  # noqa: E501

        :param referenced_field_ids: The referenced_field_ids of this FieldOptions.  # noqa: E501
        :type: list[str]
        """

        self._referenced_field_ids = referenced_field_ids

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value
        if issubclass(FieldOptions, dict):
            for key, value in self.items():
                result[key] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, FieldOptions):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other
