# coding: utf-8

"""
    Yahoo!広告 ディスプレイ広告 API リファレンス / Yahoo! JAPAN Ads Display Ads API Reference

    <div lang=\"ja\">Yahoo!広告 ディスプレイ広告 APIのWebサービスについて説明します。</div> <div lang=\"en\">Display Ads API Web Services supported in Yahoo! JAPAN Ads API.</div> <div><a target=\"_blank\" href=\"https://github.com/yahoojp-marketing/ads-display-api-documents/blob/master/design/v12/Route.yaml\">OpenAPI Specification</a></div> <div lang=\"ja\"><a target=\"_blank\" href=\"https://github.com/yahoojp-marketing/ads-display-api-documents/blob/master/bestpractice/ja\">Best Practice</a></div> <div lang=\"en\"><a target=\"_blank\" href=\"https://github.com/yahoojp-marketing/ads-display-api-documents/blob/master/bestpractice/en\">Best Practice</a></div>   # noqa: E501

    The version of the OpenAPI document: v12
    Generated by: https://openapi-generator.tech
"""


import pprint
import re  # noqa: F401

import six

from yahoo_display_test.configuration import Configuration


class Recommendation(object):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """

    """
    Attributes:
      openapi_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.
    """
    openapi_types = {
        'type': 'RecommendationServiceType',
        'optimization_score_lift': 'float',
        'campaign_bidding_strategy_to_target_cpa': 'RecommendationServiceCampaignBiddingStrategyToTargetCpa',
        'daily_budget_over': 'RecommendationServiceDailyBudgetOver',
        'imps_share_budget_loss_over': 'RecommendationServiceImpsShareBudgetLossOver',
        'search_keyword_idea': 'RecommendationServiceSearchKeywordIdea',
        'maximize_conversions': 'RecommendationServiceMaximizeConversions',
        'maximize_clicks': 'RecommendationServiceMaximizeClicks',
        'maximize_video_views': 'RecommendationServiceMaximizeVideoViews',
        'enhanced_cpc': 'RecommendationServiceEnhancedCpc',
        'update_ad_creative': 'RecommendationServiceUpdateAdCreative',
        'duplicate_targeting_settings': 'RecommendationServiceDuplicateTargetingSettings',
        'not_optimal_ad_count_combined_ad_type_and_image_size': 'RecommendationServiceNotOptimalAdCountCombinedAdTypeAndImageSize',
        'ad_groups_for_adding_ads': 'RecommendationServiceAdGroupsForAddingAds',
        'daily_budget_small': 'RecommendationServiceDailyBudgetSmall',
        'insufficient_targeting': 'RecommendationServiceInsufficientTargeting',
        'insufficient_ad_schedule_targeting': 'RecommendationServiceInsufficientAdScheduleTargeting',
        'insufficient_conversions': 'RecommendationServiceInsufficientConversions',
        'insufficient_clicks': 'RecommendationServiceInsufficientClicks',
        'insufficient_video_views': 'RecommendationServiceInsufficientVideoViews',
        'create_campaign': 'RecommendationServiceCreateCampaign',
        'create_ad_group': 'RecommendationServiceCreateAdGroup',
        'create_ad': 'RecommendationServiceCreateAd',
        'create_responsive_display_ads': 'RecommendationServiceCreateResponsiveDisplayAds',
        'turn_your_account_on': 'RecommendationServiceTurnYourAccountOn',
        'turn_your_ad_on': 'RecommendationServiceTurnYourAdOn',
        'insufficient_account_balance': 'RecommendationServiceInsufficientAccountBalance'
    }

    attribute_map = {
        'type': 'type',
        'optimization_score_lift': 'optimizationScoreLift',
        'campaign_bidding_strategy_to_target_cpa': 'campaignBiddingStrategyToTargetCpa',
        'daily_budget_over': 'dailyBudgetOver',
        'imps_share_budget_loss_over': 'impsShareBudgetLossOver',
        'search_keyword_idea': 'searchKeywordIdea',
        'maximize_conversions': 'maximizeConversions',
        'maximize_clicks': 'maximizeClicks',
        'maximize_video_views': 'maximizeVideoViews',
        'enhanced_cpc': 'enhancedCpc',
        'update_ad_creative': 'updateAdCreative',
        'duplicate_targeting_settings': 'duplicateTargetingSettings',
        'not_optimal_ad_count_combined_ad_type_and_image_size': 'notOptimalAdCountCombinedAdTypeAndImageSize',
        'ad_groups_for_adding_ads': 'adGroupsForAddingAds',
        'daily_budget_small': 'dailyBudgetSmall',
        'insufficient_targeting': 'insufficientTargeting',
        'insufficient_ad_schedule_targeting': 'insufficientAdScheduleTargeting',
        'insufficient_conversions': 'insufficientConversions',
        'insufficient_clicks': 'insufficientClicks',
        'insufficient_video_views': 'insufficientVideoViews',
        'create_campaign': 'createCampaign',
        'create_ad_group': 'createAdGroup',
        'create_ad': 'createAd',
        'create_responsive_display_ads': 'createResponsiveDisplayAds',
        'turn_your_account_on': 'turnYourAccountOn',
        'turn_your_ad_on': 'turnYourAdOn',
        'insufficient_account_balance': 'insufficientAccountBalance'
    }

    def __init__(self, type=None, optimization_score_lift=None, campaign_bidding_strategy_to_target_cpa=None, daily_budget_over=None, imps_share_budget_loss_over=None, search_keyword_idea=None, maximize_conversions=None, maximize_clicks=None, maximize_video_views=None, enhanced_cpc=None, update_ad_creative=None, duplicate_targeting_settings=None, not_optimal_ad_count_combined_ad_type_and_image_size=None, ad_groups_for_adding_ads=None, daily_budget_small=None, insufficient_targeting=None, insufficient_ad_schedule_targeting=None, insufficient_conversions=None, insufficient_clicks=None, insufficient_video_views=None, create_campaign=None, create_ad_group=None, create_ad=None, create_responsive_display_ads=None, turn_your_account_on=None, turn_your_ad_on=None, insufficient_account_balance=None, local_vars_configuration=None):  # noqa: E501
        """Recommendation - a model defined in OpenAPI"""  # noqa: E501
        if local_vars_configuration is None:
            local_vars_configuration = Configuration()
        self.local_vars_configuration = local_vars_configuration

        self._type = None
        self._optimization_score_lift = None
        self._campaign_bidding_strategy_to_target_cpa = None
        self._daily_budget_over = None
        self._imps_share_budget_loss_over = None
        self._search_keyword_idea = None
        self._maximize_conversions = None
        self._maximize_clicks = None
        self._maximize_video_views = None
        self._enhanced_cpc = None
        self._update_ad_creative = None
        self._duplicate_targeting_settings = None
        self._not_optimal_ad_count_combined_ad_type_and_image_size = None
        self._ad_groups_for_adding_ads = None
        self._daily_budget_small = None
        self._insufficient_targeting = None
        self._insufficient_ad_schedule_targeting = None
        self._insufficient_conversions = None
        self._insufficient_clicks = None
        self._insufficient_video_views = None
        self._create_campaign = None
        self._create_ad_group = None
        self._create_ad = None
        self._create_responsive_display_ads = None
        self._turn_your_account_on = None
        self._turn_your_ad_on = None
        self._insufficient_account_balance = None
        self.discriminator = None

        self.type = type
        self.optimization_score_lift = optimization_score_lift
        self.campaign_bidding_strategy_to_target_cpa = campaign_bidding_strategy_to_target_cpa
        self.daily_budget_over = daily_budget_over
        self.imps_share_budget_loss_over = imps_share_budget_loss_over
        self.search_keyword_idea = search_keyword_idea
        self.maximize_conversions = maximize_conversions
        self.maximize_clicks = maximize_clicks
        self.maximize_video_views = maximize_video_views
        self.enhanced_cpc = enhanced_cpc
        self.update_ad_creative = update_ad_creative
        self.duplicate_targeting_settings = duplicate_targeting_settings
        self.not_optimal_ad_count_combined_ad_type_and_image_size = not_optimal_ad_count_combined_ad_type_and_image_size
        self.ad_groups_for_adding_ads = ad_groups_for_adding_ads
        self.daily_budget_small = daily_budget_small
        self.insufficient_targeting = insufficient_targeting
        self.insufficient_ad_schedule_targeting = insufficient_ad_schedule_targeting
        self.insufficient_conversions = insufficient_conversions
        self.insufficient_clicks = insufficient_clicks
        self.insufficient_video_views = insufficient_video_views
        self.create_campaign = create_campaign
        self.create_ad_group = create_ad_group
        self.create_ad = create_ad
        self.create_responsive_display_ads = create_responsive_display_ads
        self.turn_your_account_on = turn_your_account_on
        self.turn_your_ad_on = turn_your_ad_on
        self.insufficient_account_balance = insufficient_account_balance

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


        :return: The type of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceType
        """
        return self._type

    @type.setter
    def type(self, type):
        """Sets the type of this Recommendation.


        :param type: The type of this Recommendation.  # noqa: E501
        :type: RecommendationServiceType
        """

        self._type = type

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

        <div lang=\"ja\"> 最適化スコアの上昇推測値です。<br> </div> <div lang=\"en\"> Estimated optimization score increase<br> </div>   # noqa: E501

        :return: The optimization_score_lift of this Recommendation.  # noqa: E501
        :rtype: float
        """
        return self._optimization_score_lift

    @optimization_score_lift.setter
    def optimization_score_lift(self, optimization_score_lift):
        """Sets the optimization_score_lift of this Recommendation.

        <div lang=\"ja\"> 最適化スコアの上昇推測値です。<br> </div> <div lang=\"en\"> Estimated optimization score increase<br> </div>   # noqa: E501

        :param optimization_score_lift: The optimization_score_lift of this Recommendation.  # noqa: E501
        :type: float
        """

        self._optimization_score_lift = optimization_score_lift

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


        :return: The campaign_bidding_strategy_to_target_cpa of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceCampaignBiddingStrategyToTargetCpa
        """
        return self._campaign_bidding_strategy_to_target_cpa

    @campaign_bidding_strategy_to_target_cpa.setter
    def campaign_bidding_strategy_to_target_cpa(self, campaign_bidding_strategy_to_target_cpa):
        """Sets the campaign_bidding_strategy_to_target_cpa of this Recommendation.


        :param campaign_bidding_strategy_to_target_cpa: The campaign_bidding_strategy_to_target_cpa of this Recommendation.  # noqa: E501
        :type: RecommendationServiceCampaignBiddingStrategyToTargetCpa
        """

        self._campaign_bidding_strategy_to_target_cpa = campaign_bidding_strategy_to_target_cpa

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


        :return: The daily_budget_over of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceDailyBudgetOver
        """
        return self._daily_budget_over

    @daily_budget_over.setter
    def daily_budget_over(self, daily_budget_over):
        """Sets the daily_budget_over of this Recommendation.


        :param daily_budget_over: The daily_budget_over of this Recommendation.  # noqa: E501
        :type: RecommendationServiceDailyBudgetOver
        """

        self._daily_budget_over = daily_budget_over

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


        :return: The imps_share_budget_loss_over of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceImpsShareBudgetLossOver
        """
        return self._imps_share_budget_loss_over

    @imps_share_budget_loss_over.setter
    def imps_share_budget_loss_over(self, imps_share_budget_loss_over):
        """Sets the imps_share_budget_loss_over of this Recommendation.


        :param imps_share_budget_loss_over: The imps_share_budget_loss_over of this Recommendation.  # noqa: E501
        :type: RecommendationServiceImpsShareBudgetLossOver
        """

        self._imps_share_budget_loss_over = imps_share_budget_loss_over

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


        :return: The search_keyword_idea of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceSearchKeywordIdea
        """
        return self._search_keyword_idea

    @search_keyword_idea.setter
    def search_keyword_idea(self, search_keyword_idea):
        """Sets the search_keyword_idea of this Recommendation.


        :param search_keyword_idea: The search_keyword_idea of this Recommendation.  # noqa: E501
        :type: RecommendationServiceSearchKeywordIdea
        """

        self._search_keyword_idea = search_keyword_idea

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


        :return: The maximize_conversions of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceMaximizeConversions
        """
        return self._maximize_conversions

    @maximize_conversions.setter
    def maximize_conversions(self, maximize_conversions):
        """Sets the maximize_conversions of this Recommendation.


        :param maximize_conversions: The maximize_conversions of this Recommendation.  # noqa: E501
        :type: RecommendationServiceMaximizeConversions
        """

        self._maximize_conversions = maximize_conversions

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


        :return: The maximize_clicks of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceMaximizeClicks
        """
        return self._maximize_clicks

    @maximize_clicks.setter
    def maximize_clicks(self, maximize_clicks):
        """Sets the maximize_clicks of this Recommendation.


        :param maximize_clicks: The maximize_clicks of this Recommendation.  # noqa: E501
        :type: RecommendationServiceMaximizeClicks
        """

        self._maximize_clicks = maximize_clicks

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


        :return: The maximize_video_views of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceMaximizeVideoViews
        """
        return self._maximize_video_views

    @maximize_video_views.setter
    def maximize_video_views(self, maximize_video_views):
        """Sets the maximize_video_views of this Recommendation.


        :param maximize_video_views: The maximize_video_views of this Recommendation.  # noqa: E501
        :type: RecommendationServiceMaximizeVideoViews
        """

        self._maximize_video_views = maximize_video_views

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


        :return: The enhanced_cpc of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceEnhancedCpc
        """
        return self._enhanced_cpc

    @enhanced_cpc.setter
    def enhanced_cpc(self, enhanced_cpc):
        """Sets the enhanced_cpc of this Recommendation.


        :param enhanced_cpc: The enhanced_cpc of this Recommendation.  # noqa: E501
        :type: RecommendationServiceEnhancedCpc
        """

        self._enhanced_cpc = enhanced_cpc

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


        :return: The update_ad_creative of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceUpdateAdCreative
        """
        return self._update_ad_creative

    @update_ad_creative.setter
    def update_ad_creative(self, update_ad_creative):
        """Sets the update_ad_creative of this Recommendation.


        :param update_ad_creative: The update_ad_creative of this Recommendation.  # noqa: E501
        :type: RecommendationServiceUpdateAdCreative
        """

        self._update_ad_creative = update_ad_creative

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


        :return: The duplicate_targeting_settings of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceDuplicateTargetingSettings
        """
        return self._duplicate_targeting_settings

    @duplicate_targeting_settings.setter
    def duplicate_targeting_settings(self, duplicate_targeting_settings):
        """Sets the duplicate_targeting_settings of this Recommendation.


        :param duplicate_targeting_settings: The duplicate_targeting_settings of this Recommendation.  # noqa: E501
        :type: RecommendationServiceDuplicateTargetingSettings
        """

        self._duplicate_targeting_settings = duplicate_targeting_settings

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


        :return: The not_optimal_ad_count_combined_ad_type_and_image_size of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceNotOptimalAdCountCombinedAdTypeAndImageSize
        """
        return self._not_optimal_ad_count_combined_ad_type_and_image_size

    @not_optimal_ad_count_combined_ad_type_and_image_size.setter
    def not_optimal_ad_count_combined_ad_type_and_image_size(self, not_optimal_ad_count_combined_ad_type_and_image_size):
        """Sets the not_optimal_ad_count_combined_ad_type_and_image_size of this Recommendation.


        :param not_optimal_ad_count_combined_ad_type_and_image_size: The not_optimal_ad_count_combined_ad_type_and_image_size of this Recommendation.  # noqa: E501
        :type: RecommendationServiceNotOptimalAdCountCombinedAdTypeAndImageSize
        """

        self._not_optimal_ad_count_combined_ad_type_and_image_size = not_optimal_ad_count_combined_ad_type_and_image_size

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


        :return: The ad_groups_for_adding_ads of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceAdGroupsForAddingAds
        """
        return self._ad_groups_for_adding_ads

    @ad_groups_for_adding_ads.setter
    def ad_groups_for_adding_ads(self, ad_groups_for_adding_ads):
        """Sets the ad_groups_for_adding_ads of this Recommendation.


        :param ad_groups_for_adding_ads: The ad_groups_for_adding_ads of this Recommendation.  # noqa: E501
        :type: RecommendationServiceAdGroupsForAddingAds
        """

        self._ad_groups_for_adding_ads = ad_groups_for_adding_ads

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


        :return: The daily_budget_small of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceDailyBudgetSmall
        """
        return self._daily_budget_small

    @daily_budget_small.setter
    def daily_budget_small(self, daily_budget_small):
        """Sets the daily_budget_small of this Recommendation.


        :param daily_budget_small: The daily_budget_small of this Recommendation.  # noqa: E501
        :type: RecommendationServiceDailyBudgetSmall
        """

        self._daily_budget_small = daily_budget_small

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


        :return: The insufficient_targeting of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceInsufficientTargeting
        """
        return self._insufficient_targeting

    @insufficient_targeting.setter
    def insufficient_targeting(self, insufficient_targeting):
        """Sets the insufficient_targeting of this Recommendation.


        :param insufficient_targeting: The insufficient_targeting of this Recommendation.  # noqa: E501
        :type: RecommendationServiceInsufficientTargeting
        """

        self._insufficient_targeting = insufficient_targeting

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


        :return: The insufficient_ad_schedule_targeting of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceInsufficientAdScheduleTargeting
        """
        return self._insufficient_ad_schedule_targeting

    @insufficient_ad_schedule_targeting.setter
    def insufficient_ad_schedule_targeting(self, insufficient_ad_schedule_targeting):
        """Sets the insufficient_ad_schedule_targeting of this Recommendation.


        :param insufficient_ad_schedule_targeting: The insufficient_ad_schedule_targeting of this Recommendation.  # noqa: E501
        :type: RecommendationServiceInsufficientAdScheduleTargeting
        """

        self._insufficient_ad_schedule_targeting = insufficient_ad_schedule_targeting

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


        :return: The insufficient_conversions of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceInsufficientConversions
        """
        return self._insufficient_conversions

    @insufficient_conversions.setter
    def insufficient_conversions(self, insufficient_conversions):
        """Sets the insufficient_conversions of this Recommendation.


        :param insufficient_conversions: The insufficient_conversions of this Recommendation.  # noqa: E501
        :type: RecommendationServiceInsufficientConversions
        """

        self._insufficient_conversions = insufficient_conversions

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


        :return: The insufficient_clicks of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceInsufficientClicks
        """
        return self._insufficient_clicks

    @insufficient_clicks.setter
    def insufficient_clicks(self, insufficient_clicks):
        """Sets the insufficient_clicks of this Recommendation.


        :param insufficient_clicks: The insufficient_clicks of this Recommendation.  # noqa: E501
        :type: RecommendationServiceInsufficientClicks
        """

        self._insufficient_clicks = insufficient_clicks

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


        :return: The insufficient_video_views of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceInsufficientVideoViews
        """
        return self._insufficient_video_views

    @insufficient_video_views.setter
    def insufficient_video_views(self, insufficient_video_views):
        """Sets the insufficient_video_views of this Recommendation.


        :param insufficient_video_views: The insufficient_video_views of this Recommendation.  # noqa: E501
        :type: RecommendationServiceInsufficientVideoViews
        """

        self._insufficient_video_views = insufficient_video_views

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


        :return: The create_campaign of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceCreateCampaign
        """
        return self._create_campaign

    @create_campaign.setter
    def create_campaign(self, create_campaign):
        """Sets the create_campaign of this Recommendation.


        :param create_campaign: The create_campaign of this Recommendation.  # noqa: E501
        :type: RecommendationServiceCreateCampaign
        """

        self._create_campaign = create_campaign

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


        :return: The create_ad_group of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceCreateAdGroup
        """
        return self._create_ad_group

    @create_ad_group.setter
    def create_ad_group(self, create_ad_group):
        """Sets the create_ad_group of this Recommendation.


        :param create_ad_group: The create_ad_group of this Recommendation.  # noqa: E501
        :type: RecommendationServiceCreateAdGroup
        """

        self._create_ad_group = create_ad_group

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


        :return: The create_ad of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceCreateAd
        """
        return self._create_ad

    @create_ad.setter
    def create_ad(self, create_ad):
        """Sets the create_ad of this Recommendation.


        :param create_ad: The create_ad of this Recommendation.  # noqa: E501
        :type: RecommendationServiceCreateAd
        """

        self._create_ad = create_ad

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


        :return: The create_responsive_display_ads of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceCreateResponsiveDisplayAds
        """
        return self._create_responsive_display_ads

    @create_responsive_display_ads.setter
    def create_responsive_display_ads(self, create_responsive_display_ads):
        """Sets the create_responsive_display_ads of this Recommendation.


        :param create_responsive_display_ads: The create_responsive_display_ads of this Recommendation.  # noqa: E501
        :type: RecommendationServiceCreateResponsiveDisplayAds
        """

        self._create_responsive_display_ads = create_responsive_display_ads

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


        :return: The turn_your_account_on of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceTurnYourAccountOn
        """
        return self._turn_your_account_on

    @turn_your_account_on.setter
    def turn_your_account_on(self, turn_your_account_on):
        """Sets the turn_your_account_on of this Recommendation.


        :param turn_your_account_on: The turn_your_account_on of this Recommendation.  # noqa: E501
        :type: RecommendationServiceTurnYourAccountOn
        """

        self._turn_your_account_on = turn_your_account_on

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


        :return: The turn_your_ad_on of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceTurnYourAdOn
        """
        return self._turn_your_ad_on

    @turn_your_ad_on.setter
    def turn_your_ad_on(self, turn_your_ad_on):
        """Sets the turn_your_ad_on of this Recommendation.


        :param turn_your_ad_on: The turn_your_ad_on of this Recommendation.  # noqa: E501
        :type: RecommendationServiceTurnYourAdOn
        """

        self._turn_your_ad_on = turn_your_ad_on

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


        :return: The insufficient_account_balance of this Recommendation.  # noqa: E501
        :rtype: RecommendationServiceInsufficientAccountBalance
        """
        return self._insufficient_account_balance

    @insufficient_account_balance.setter
    def insufficient_account_balance(self, insufficient_account_balance):
        """Sets the insufficient_account_balance of this Recommendation.


        :param insufficient_account_balance: The insufficient_account_balance of this Recommendation.  # noqa: E501
        :type: RecommendationServiceInsufficientAccountBalance
        """

        self._insufficient_account_balance = insufficient_account_balance

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

        for attr, _ in six.iteritems(self.openapi_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

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

        return self.to_dict() == other.to_dict()

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

        return self.to_dict() != other.to_dict()
