# coding: utf-8

"""
    Teleagronom

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class RosselkhozBankComplexAnalysisRequest(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 = {
        'request_uid': 'str',
        'client_uid': 'str',
        'sampling_date': 'date',
        'name': 'str',
        'phone': 'str',
        'region': 'int',
        'district': 'str',
        'address': 'str',
        'field_number': 'str',
        'sampling_coordinates': 'str',
        'sampling_depth': 'int',
        'culture': 'int',
        'planned_yield': 'float',
        'degree_of_soil_moisture': 'int',
        'fertilizer_action_year': 'int',
        'mechanical_composition': 'int',
        'preceding_culture': 'int',
        'depth_of_arable_layer': 'int',
        'preceding_culture_yield': 'float',
        'ph_water': 'float',
        'ph_salt': 'float',
        'nh4': 'float',
        'no3': 'float',
        'p2o5': 'float',
        'k2o': 'float',
        'method': 'str',
        's': 'float',
        'ca': 'float',
        'mg': 'float',
        'na': 'float',
        'so4': 'float',
        'cl': 'float',
        'organic_substances': 'float',
        'salt_conductivity': 'float',
        'status': 'str',
        'created': 'datetime',
        'updated': 'datetime',
        'agrochemical_calculator': 'AllOfRosselkhozBankComplexAnalysisRequestAgrochemicalCalculator',
        'rb_calculator': 'int',
        'normative_calculator': 'int',
        'url_for_pdf': 'str'
    }

    attribute_map = {
        'request_uid': 'request_uid',
        'client_uid': 'client_uid',
        'sampling_date': 'sampling_date',
        'name': 'name',
        'phone': 'phone',
        'region': 'region',
        'district': 'district',
        'address': 'address',
        'field_number': 'field_number',
        'sampling_coordinates': 'sampling_coordinates',
        'sampling_depth': 'sampling_depth',
        'culture': 'culture',
        'planned_yield': 'planned_yield',
        'degree_of_soil_moisture': 'degree_of_soil_moisture',
        'fertilizer_action_year': 'fertilizer_action_year',
        'mechanical_composition': 'mechanical_composition',
        'preceding_culture': 'preceding_culture',
        'depth_of_arable_layer': 'depth_of_arable_layer',
        'preceding_culture_yield': 'preceding_culture_yield',
        'ph_water': 'ph_water',
        'ph_salt': 'ph_salt',
        'nh4': 'nh4',
        'no3': 'no3',
        'p2o5': 'p2o5',
        'k2o': 'k2o',
        'method': 'method',
        's': 's',
        'ca': 'ca',
        'mg': 'mg',
        'na': 'na',
        'so4': 'so4',
        'cl': 'cl',
        'organic_substances': 'organic_substances',
        'salt_conductivity': 'salt_conductivity',
        'status': 'status',
        'created': 'created',
        'updated': 'updated',
        'agrochemical_calculator': 'agrochemical_calculator',
        'rb_calculator': 'rb_calculator',
        'normative_calculator': 'normative_calculator',
        'url_for_pdf': 'url_for_pdf'
    }

    def __init__(self, request_uid=None, client_uid=None, sampling_date=None, name=None, phone=None, region=None, district=None, address=None, field_number=None, sampling_coordinates=None, sampling_depth=None, culture=None, planned_yield=None, degree_of_soil_moisture=None, fertilizer_action_year=None, mechanical_composition=None, preceding_culture=None, depth_of_arable_layer=None, preceding_culture_yield=None, ph_water=None, ph_salt=None, nh4=None, no3=None, p2o5=None, k2o=None, method=None, s=None, ca=None, mg=None, na=None, so4=None, cl=None, organic_substances=None, salt_conductivity=None, status=None, created=None, updated=None, agrochemical_calculator=None, rb_calculator=None, normative_calculator=None, url_for_pdf=None):  # noqa: E501
        """RosselkhozBankComplexAnalysisRequest - a model defined in Swagger"""  # noqa: E501
        self._request_uid = None
        self._client_uid = None
        self._sampling_date = None
        self._name = None
        self._phone = None
        self._region = None
        self._district = None
        self._address = None
        self._field_number = None
        self._sampling_coordinates = None
        self._sampling_depth = None
        self._culture = None
        self._planned_yield = None
        self._degree_of_soil_moisture = None
        self._fertilizer_action_year = None
        self._mechanical_composition = None
        self._preceding_culture = None
        self._depth_of_arable_layer = None
        self._preceding_culture_yield = None
        self._ph_water = None
        self._ph_salt = None
        self._nh4 = None
        self._no3 = None
        self._p2o5 = None
        self._k2o = None
        self._method = None
        self._s = None
        self._ca = None
        self._mg = None
        self._na = None
        self._so4 = None
        self._cl = None
        self._organic_substances = None
        self._salt_conductivity = None
        self._status = None
        self._created = None
        self._updated = None
        self._agrochemical_calculator = None
        self._rb_calculator = None
        self._normative_calculator = None
        self._url_for_pdf = None
        self.discriminator = None
        self.request_uid = request_uid
        self.client_uid = client_uid
        if sampling_date is not None:
            self.sampling_date = sampling_date
        self.name = name
        if phone is not None:
            self.phone = phone
        self.region = region
        if district is not None:
            self.district = district
        if address is not None:
            self.address = address
        if field_number is not None:
            self.field_number = field_number
        if sampling_coordinates is not None:
            self.sampling_coordinates = sampling_coordinates
        self.sampling_depth = sampling_depth
        if culture is not None:
            self.culture = culture
        if planned_yield is not None:
            self.planned_yield = planned_yield
        if degree_of_soil_moisture is not None:
            self.degree_of_soil_moisture = degree_of_soil_moisture
        if fertilizer_action_year is not None:
            self.fertilizer_action_year = fertilizer_action_year
        if mechanical_composition is not None:
            self.mechanical_composition = mechanical_composition
        if preceding_culture is not None:
            self.preceding_culture = preceding_culture
        if depth_of_arable_layer is not None:
            self.depth_of_arable_layer = depth_of_arable_layer
        if preceding_culture_yield is not None:
            self.preceding_culture_yield = preceding_culture_yield
        if ph_water is not None:
            self.ph_water = ph_water
        if ph_salt is not None:
            self.ph_salt = ph_salt
        if nh4 is not None:
            self.nh4 = nh4
        if no3 is not None:
            self.no3 = no3
        if p2o5 is not None:
            self.p2o5 = p2o5
        if k2o is not None:
            self.k2o = k2o
        if method is not None:
            self.method = method
        if s is not None:
            self.s = s
        if ca is not None:
            self.ca = ca
        if mg is not None:
            self.mg = mg
        if na is not None:
            self.na = na
        if so4 is not None:
            self.so4 = so4
        if cl is not None:
            self.cl = cl
        if organic_substances is not None:
            self.organic_substances = organic_substances
        if salt_conductivity is not None:
            self.salt_conductivity = salt_conductivity
        if status is not None:
            self.status = status
        if created is not None:
            self.created = created
        if updated is not None:
            self.updated = updated
        self.agrochemical_calculator = agrochemical_calculator
        self.rb_calculator = rb_calculator
        self.normative_calculator = normative_calculator
        if url_for_pdf is not None:
            self.url_for_pdf = url_for_pdf

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


        :return: The request_uid of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._request_uid

    @request_uid.setter
    def request_uid(self, request_uid):
        """Sets the request_uid of this RosselkhozBankComplexAnalysisRequest.


        :param request_uid: The request_uid of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """
        if request_uid is None:
            raise ValueError("Invalid value for `request_uid`, must not be `None`")  # noqa: E501

        self._request_uid = request_uid

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


        :return: The client_uid of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._client_uid

    @client_uid.setter
    def client_uid(self, client_uid):
        """Sets the client_uid of this RosselkhozBankComplexAnalysisRequest.


        :param client_uid: The client_uid of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """
        if client_uid is None:
            raise ValueError("Invalid value for `client_uid`, must not be `None`")  # noqa: E501

        self._client_uid = client_uid

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


        :return: The sampling_date of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: date
        """
        return self._sampling_date

    @sampling_date.setter
    def sampling_date(self, sampling_date):
        """Sets the sampling_date of this RosselkhozBankComplexAnalysisRequest.


        :param sampling_date: The sampling_date of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: date
        """

        self._sampling_date = sampling_date

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


        :return: The name of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this RosselkhozBankComplexAnalysisRequest.


        :param name: The name of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """
        if name is None:
            raise ValueError("Invalid value for `name`, must not be `None`")  # noqa: E501

        self._name = name

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


        :return: The phone of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._phone

    @phone.setter
    def phone(self, phone):
        """Sets the phone of this RosselkhozBankComplexAnalysisRequest.


        :param phone: The phone of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """

        self._phone = phone

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


        :return: The region of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: int
        """
        return self._region

    @region.setter
    def region(self, region):
        """Sets the region of this RosselkhozBankComplexAnalysisRequest.


        :param region: The region of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: int
        """
        if region is None:
            raise ValueError("Invalid value for `region`, must not be `None`")  # noqa: E501

        self._region = region

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


        :return: The district of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._district

    @district.setter
    def district(self, district):
        """Sets the district of this RosselkhozBankComplexAnalysisRequest.


        :param district: The district of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """

        self._district = district

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


        :return: The address of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._address

    @address.setter
    def address(self, address):
        """Sets the address of this RosselkhozBankComplexAnalysisRequest.


        :param address: The address of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """

        self._address = address

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


        :return: The field_number of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._field_number

    @field_number.setter
    def field_number(self, field_number):
        """Sets the field_number of this RosselkhozBankComplexAnalysisRequest.


        :param field_number: The field_number of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """

        self._field_number = field_number

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


        :return: The sampling_coordinates of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._sampling_coordinates

    @sampling_coordinates.setter
    def sampling_coordinates(self, sampling_coordinates):
        """Sets the sampling_coordinates of this RosselkhozBankComplexAnalysisRequest.


        :param sampling_coordinates: The sampling_coordinates of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """

        self._sampling_coordinates = sampling_coordinates

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


        :return: The sampling_depth of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: int
        """
        return self._sampling_depth

    @sampling_depth.setter
    def sampling_depth(self, sampling_depth):
        """Sets the sampling_depth of this RosselkhozBankComplexAnalysisRequest.


        :param sampling_depth: The sampling_depth of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: int
        """
        if sampling_depth is None:
            raise ValueError("Invalid value for `sampling_depth`, must not be `None`")  # noqa: E501

        self._sampling_depth = sampling_depth

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


        :return: The culture of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: int
        """
        return self._culture

    @culture.setter
    def culture(self, culture):
        """Sets the culture of this RosselkhozBankComplexAnalysisRequest.


        :param culture: The culture of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: int
        """

        self._culture = culture

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


        :return: The planned_yield of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._planned_yield

    @planned_yield.setter
    def planned_yield(self, planned_yield):
        """Sets the planned_yield of this RosselkhozBankComplexAnalysisRequest.


        :param planned_yield: The planned_yield of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._planned_yield = planned_yield

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


        :return: The degree_of_soil_moisture of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: int
        """
        return self._degree_of_soil_moisture

    @degree_of_soil_moisture.setter
    def degree_of_soil_moisture(self, degree_of_soil_moisture):
        """Sets the degree_of_soil_moisture of this RosselkhozBankComplexAnalysisRequest.


        :param degree_of_soil_moisture: The degree_of_soil_moisture of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: int
        """

        self._degree_of_soil_moisture = degree_of_soil_moisture

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


        :return: The fertilizer_action_year of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: int
        """
        return self._fertilizer_action_year

    @fertilizer_action_year.setter
    def fertilizer_action_year(self, fertilizer_action_year):
        """Sets the fertilizer_action_year of this RosselkhozBankComplexAnalysisRequest.


        :param fertilizer_action_year: The fertilizer_action_year of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: int
        """

        self._fertilizer_action_year = fertilizer_action_year

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


        :return: The mechanical_composition of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: int
        """
        return self._mechanical_composition

    @mechanical_composition.setter
    def mechanical_composition(self, mechanical_composition):
        """Sets the mechanical_composition of this RosselkhozBankComplexAnalysisRequest.


        :param mechanical_composition: The mechanical_composition of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: int
        """

        self._mechanical_composition = mechanical_composition

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


        :return: The preceding_culture of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: int
        """
        return self._preceding_culture

    @preceding_culture.setter
    def preceding_culture(self, preceding_culture):
        """Sets the preceding_culture of this RosselkhozBankComplexAnalysisRequest.


        :param preceding_culture: The preceding_culture of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: int
        """

        self._preceding_culture = preceding_culture

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


        :return: The depth_of_arable_layer of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: int
        """
        return self._depth_of_arable_layer

    @depth_of_arable_layer.setter
    def depth_of_arable_layer(self, depth_of_arable_layer):
        """Sets the depth_of_arable_layer of this RosselkhozBankComplexAnalysisRequest.


        :param depth_of_arable_layer: The depth_of_arable_layer of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: int
        """

        self._depth_of_arable_layer = depth_of_arable_layer

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


        :return: The preceding_culture_yield of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._preceding_culture_yield

    @preceding_culture_yield.setter
    def preceding_culture_yield(self, preceding_culture_yield):
        """Sets the preceding_culture_yield of this RosselkhozBankComplexAnalysisRequest.


        :param preceding_culture_yield: The preceding_culture_yield of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._preceding_culture_yield = preceding_culture_yield

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


        :return: The ph_water of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._ph_water

    @ph_water.setter
    def ph_water(self, ph_water):
        """Sets the ph_water of this RosselkhozBankComplexAnalysisRequest.


        :param ph_water: The ph_water of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._ph_water = ph_water

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


        :return: The ph_salt of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._ph_salt

    @ph_salt.setter
    def ph_salt(self, ph_salt):
        """Sets the ph_salt of this RosselkhozBankComplexAnalysisRequest.


        :param ph_salt: The ph_salt of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._ph_salt = ph_salt

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


        :return: The nh4 of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._nh4

    @nh4.setter
    def nh4(self, nh4):
        """Sets the nh4 of this RosselkhozBankComplexAnalysisRequest.


        :param nh4: The nh4 of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._nh4 = nh4

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


        :return: The no3 of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._no3

    @no3.setter
    def no3(self, no3):
        """Sets the no3 of this RosselkhozBankComplexAnalysisRequest.


        :param no3: The no3 of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._no3 = no3

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


        :return: The p2o5 of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._p2o5

    @p2o5.setter
    def p2o5(self, p2o5):
        """Sets the p2o5 of this RosselkhozBankComplexAnalysisRequest.


        :param p2o5: The p2o5 of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._p2o5 = p2o5

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


        :return: The k2o of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._k2o

    @k2o.setter
    def k2o(self, k2o):
        """Sets the k2o of this RosselkhozBankComplexAnalysisRequest.


        :param k2o: The k2o of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._k2o = k2o

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


        :return: The method of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._method

    @method.setter
    def method(self, method):
        """Sets the method of this RosselkhozBankComplexAnalysisRequest.


        :param method: The method of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """
        allowed_values = ["kirsanov", "chirikov", "machigin", ""]  # noqa: E501
        if method not in allowed_values:
            raise ValueError(
                "Invalid value for `method` ({0}), must be one of {1}"  # noqa: E501
                .format(method, allowed_values)
            )

        self._method = method

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


        :return: The s of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._s

    @s.setter
    def s(self, s):
        """Sets the s of this RosselkhozBankComplexAnalysisRequest.


        :param s: The s of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._s = s

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


        :return: The ca of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._ca

    @ca.setter
    def ca(self, ca):
        """Sets the ca of this RosselkhozBankComplexAnalysisRequest.


        :param ca: The ca of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._ca = ca

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


        :return: The mg of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._mg

    @mg.setter
    def mg(self, mg):
        """Sets the mg of this RosselkhozBankComplexAnalysisRequest.


        :param mg: The mg of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._mg = mg

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


        :return: The na of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._na

    @na.setter
    def na(self, na):
        """Sets the na of this RosselkhozBankComplexAnalysisRequest.


        :param na: The na of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._na = na

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


        :return: The so4 of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._so4

    @so4.setter
    def so4(self, so4):
        """Sets the so4 of this RosselkhozBankComplexAnalysisRequest.


        :param so4: The so4 of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._so4 = so4

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


        :return: The cl of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._cl

    @cl.setter
    def cl(self, cl):
        """Sets the cl of this RosselkhozBankComplexAnalysisRequest.


        :param cl: The cl of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._cl = cl

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


        :return: The organic_substances of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._organic_substances

    @organic_substances.setter
    def organic_substances(self, organic_substances):
        """Sets the organic_substances of this RosselkhozBankComplexAnalysisRequest.


        :param organic_substances: The organic_substances of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._organic_substances = organic_substances

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


        :return: The salt_conductivity of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: float
        """
        return self._salt_conductivity

    @salt_conductivity.setter
    def salt_conductivity(self, salt_conductivity):
        """Sets the salt_conductivity of this RosselkhozBankComplexAnalysisRequest.


        :param salt_conductivity: The salt_conductivity of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: float
        """

        self._salt_conductivity = salt_conductivity

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


        :return: The status of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._status

    @status.setter
    def status(self, status):
        """Sets the status of this RosselkhozBankComplexAnalysisRequest.


        :param status: The status of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """
        allowed_values = ["created", "done", ""]  # noqa: E501
        if status not in allowed_values:
            raise ValueError(
                "Invalid value for `status` ({0}), must be one of {1}"  # noqa: E501
                .format(status, allowed_values)
            )

        self._status = status

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


        :return: The created of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: datetime
        """
        return self._created

    @created.setter
    def created(self, created):
        """Sets the created of this RosselkhozBankComplexAnalysisRequest.


        :param created: The created of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: datetime
        """

        self._created = created

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


        :return: The updated of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: datetime
        """
        return self._updated

    @updated.setter
    def updated(self, updated):
        """Sets the updated of this RosselkhozBankComplexAnalysisRequest.


        :param updated: The updated of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: datetime
        """

        self._updated = updated

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


        :return: The agrochemical_calculator of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: AllOfRosselkhozBankComplexAnalysisRequestAgrochemicalCalculator
        """
        return self._agrochemical_calculator

    @agrochemical_calculator.setter
    def agrochemical_calculator(self, agrochemical_calculator):
        """Sets the agrochemical_calculator of this RosselkhozBankComplexAnalysisRequest.


        :param agrochemical_calculator: The agrochemical_calculator of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: AllOfRosselkhozBankComplexAnalysisRequestAgrochemicalCalculator
        """
        if agrochemical_calculator is None:
            raise ValueError("Invalid value for `agrochemical_calculator`, must not be `None`")  # noqa: E501

        self._agrochemical_calculator = agrochemical_calculator

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


        :return: The rb_calculator of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: int
        """
        return self._rb_calculator

    @rb_calculator.setter
    def rb_calculator(self, rb_calculator):
        """Sets the rb_calculator of this RosselkhozBankComplexAnalysisRequest.


        :param rb_calculator: The rb_calculator of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: int
        """
        if rb_calculator is None:
            raise ValueError("Invalid value for `rb_calculator`, must not be `None`")  # noqa: E501

        self._rb_calculator = rb_calculator

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


        :return: The normative_calculator of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: int
        """
        return self._normative_calculator

    @normative_calculator.setter
    def normative_calculator(self, normative_calculator):
        """Sets the normative_calculator of this RosselkhozBankComplexAnalysisRequest.


        :param normative_calculator: The normative_calculator of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: int
        """
        if normative_calculator is None:
            raise ValueError("Invalid value for `normative_calculator`, must not be `None`")  # noqa: E501

        self._normative_calculator = normative_calculator

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


        :return: The url_for_pdf of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :rtype: str
        """
        return self._url_for_pdf

    @url_for_pdf.setter
    def url_for_pdf(self, url_for_pdf):
        """Sets the url_for_pdf of this RosselkhozBankComplexAnalysisRequest.


        :param url_for_pdf: The url_for_pdf of this RosselkhozBankComplexAnalysisRequest.  # noqa: E501
        :type: str
        """

        self._url_for_pdf = url_for_pdf

    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(RosselkhozBankComplexAnalysisRequest, 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, RosselkhozBankComplexAnalysisRequest):
            return False

        return self.__dict__ == other.__dict__

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