# coding: utf-8

"""
    CampaignManagementService

    No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)

    The version of the OpenAPI document: 1.0.0
    Generated by OpenAPI Generator (https://openapi-generator.tech)

    Do not edit the class manually.
"""  # noqa: E501


from __future__ import annotations
import pprint
import re  # noqa: F401
import json

from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional, Union, Set
from openapi_client.models.campaign.import_search_and_replace_for_string_property import ImportSearchAndReplaceForStringProperty
from openapi_client.models.campaign.key_value_pair_ofstring_andstring import KeyValuePairOfstringAndstring
from typing_extensions import Self

class GoogleImportOption(BaseModel):
    """
    GoogleImportOption
    """ # noqa: E501
    new_entities: Optional[StrictBool] = Field(default=None, alias="NewEntities")
    new_paused_campaigns_and_child_entities: Optional[StrictBool] = Field(default=None, alias="NewPausedCampaignsAndChildEntities")
    new_active_campaigns_and_child_entities: Optional[StrictBool] = Field(default=None, alias="NewActiveCampaignsAndChildEntities")
    new_ad_groups_and_child_entities_for_existing_campaigns: Optional[StrictBool] = Field(default=None, alias="NewAdGroupsAndChildEntitiesForExistingCampaigns")
    new_active_ads_for_existing_ad_groups: Optional[StrictBool] = Field(default=None, alias="NewActiveAdsForExistingAdGroups")
    new_keywords_for_existing_ad_groups: Optional[StrictBool] = Field(default=None, alias="NewKeywordsForExistingAdGroups")
    new_negative_keywords_for_existing_parents: Optional[StrictBool] = Field(default=None, alias="NewNegativeKeywordsForExistingParents")
    new_negative_keyword_lists: Optional[StrictBool] = Field(default=None, alias="NewNegativeKeywordLists")
    new_account_negative_keywords: Optional[StrictBool] = Field(default=None, alias="NewAccountNegativeKeywords")
    pause_new_campaigns: Optional[StrictBool] = Field(default=None, alias="PauseNewCampaigns")
    new_keyword_urls: Optional[StrictBool] = Field(default=None, alias="NewKeywordUrls")
    new_url_options: Optional[StrictBool] = Field(default=None, alias="NewUrlOptions")
    new_negative_sites: Optional[StrictBool] = Field(default=None, alias="NewNegativeSites")
    new_paused_ads_for_existing_ad_groups: Optional[StrictBool] = Field(default=None, alias="NewPausedAdsForExistingAdGroups")
    new_labels: Optional[StrictBool] = Field(default=None, alias="NewLabels")
    new_product_filters: Optional[StrictBool] = Field(default=None, alias="NewProductFilters")
    new_location_targets: Optional[StrictBool] = Field(default=None, alias="NewLocationTargets")
    new_ad_schedules: Optional[StrictBool] = Field(default=None, alias="NewAdSchedules")
    new_device_targets: Optional[StrictBool] = Field(default=None, alias="NewDeviceTargets")
    new_demographic_targets: Optional[StrictBool] = Field(default=None, alias="NewDemographicTargets")
    new_audience_targets: Optional[StrictBool] = Field(default=None, alias="NewAudienceTargets")
    new_app_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewAppAdExtensions")
    new_call_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewCallAdExtensions")
    new_callout_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewCalloutAdExtensions")
    new_price_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewPriceAdExtensions")
    new_location_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewLocationAdExtensions")
    new_review_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewReviewAdExtensions")
    new_sitelink_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewSitelinkAdExtensions")
    new_structured_snippet_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewStructuredSnippetAdExtensions")
    new_promotion_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewPromotionAdExtensions")
    new_image_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewImageAdExtensions")
    new_logo_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewLogoAdExtensions")
    new_lead_form_ad_extensions: Optional[StrictBool] = Field(default=None, alias="NewLeadFormAdExtensions")
    new_page_feeds: Optional[StrictBool] = Field(default=None, alias="NewPageFeeds")
    new_ad_customizer_feeds: Optional[StrictBool] = Field(default=None, alias="NewAdCustomizerFeeds")
    new_brand_suitability: Optional[StrictBool] = Field(default=None, alias="NewBrandSuitability")
    new_conversion_goals: Optional[StrictBool] = Field(default=None, alias="NewConversionGoals")
    new_carousel_ad: Optional[StrictBool] = Field(default=None, alias="NewCarouselAd")
    update_entities: Optional[StrictBool] = Field(default=None, alias="UpdateEntities")
    update_campaign_budgets: Optional[StrictBool] = Field(default=None, alias="UpdateCampaignBudgets")
    update_bids: Optional[StrictBool] = Field(default=None, alias="UpdateBids")
    update_negative_keyword_lists: Optional[StrictBool] = Field(default=None, alias="UpdateNegativeKeywordLists")
    update_account_negative_keywords: Optional[StrictBool] = Field(default=None, alias="UpdateAccountNegativeKeywords")
    update_negative_sites: Optional[StrictBool] = Field(default=None, alias="UpdateNegativeSites")
    update_keyword_urls: Optional[StrictBool] = Field(default=None, alias="UpdateKeywordUrls")
    update_url_options: Optional[StrictBool] = Field(default=None, alias="UpdateUrlOptions")
    update_campaign_names: Optional[StrictBool] = Field(default=None, alias="UpdateCampaignNames")
    update_labels: Optional[StrictBool] = Field(default=None, alias="UpdateLabels")
    update_product_filters: Optional[StrictBool] = Field(default=None, alias="UpdateProductFilters")
    update_conversion_goals: Optional[StrictBool] = Field(default=None, alias="UpdateConversionGoals")
    update_location_targets: Optional[StrictBool] = Field(default=None, alias="UpdateLocationTargets")
    update_ad_schedules: Optional[StrictBool] = Field(default=None, alias="UpdateAdSchedules")
    update_device_targets: Optional[StrictBool] = Field(default=None, alias="UpdateDeviceTargets")
    update_demographic_targets: Optional[StrictBool] = Field(default=None, alias="UpdateDemographicTargets")
    update_campaign_ad_group_languages: Optional[StrictBool] = Field(default=None, alias="UpdateCampaignAdGroupLanguages")
    update_audience_targets: Optional[StrictBool] = Field(default=None, alias="UpdateAudienceTargets")
    update_app_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdateAppAdExtensions")
    update_call_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdateCallAdExtensions")
    update_callout_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdateCalloutAdExtensions")
    update_price_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdatePriceAdExtensions")
    update_location_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdateLocationAdExtensions")
    update_review_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdateReviewAdExtensions")
    update_sitelink_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdateSitelinkAdExtensions")
    update_structured_snippet_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdateStructuredSnippetAdExtensions")
    update_promotion_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdatePromotionAdExtensions")
    update_image_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdateImageAdExtensions")
    update_logo_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdateLogoAdExtensions")
    update_lead_form_ad_extensions: Optional[StrictBool] = Field(default=None, alias="UpdateLeadFormAdExtensions")
    update_status_for_campaigns: Optional[StrictBool] = Field(default=None, alias="UpdateStatusForCampaigns")
    update_status_for_ad_groups: Optional[StrictBool] = Field(default=None, alias="UpdateStatusForAdGroups")
    update_status_for_ads: Optional[StrictBool] = Field(default=None, alias="UpdateStatusForAds")
    update_status_for_keywords: Optional[StrictBool] = Field(default=None, alias="UpdateStatusForKeywords")
    update_ad_group_network: Optional[StrictBool] = Field(default=None, alias="UpdateAdGroupNetwork")
    update_page_feeds: Optional[StrictBool] = Field(default=None, alias="UpdatePageFeeds")
    update_ad_customizer_feeds: Optional[StrictBool] = Field(default=None, alias="UpdateAdCustomizerFeeds")
    update_brand_suitability: Optional[StrictBool] = Field(default=None, alias="UpdateBrandSuitability")
    update_ad_customizer_attributes: Optional[StrictBool] = Field(default=None, alias="UpdateAdCustomizerAttributes")
    delete_removed_entities: Optional[StrictBool] = Field(default=None, alias="DeleteRemovedEntities")
    raise_bids_to_minimum: Optional[StrictBool] = Field(default=None, alias="RaiseBidsToMinimum")
    raise_campaign_budgets_to_minimum: Optional[StrictBool] = Field(default=None, alias="RaiseCampaignBudgetsToMinimum")
    adjustment_for_campaign_budgets: Optional[StrictFloat] = Field(default=None, alias="AdjustmentForCampaignBudgets")
    adjustment_for_bids: Optional[StrictFloat] = Field(default=None, alias="AdjustmentForBids")
    suffix_for_urls: Optional[StrictStr] = Field(default=None, alias="SuffixForUrls")
    search_and_replace_for_urls: Optional[ImportSearchAndReplaceForStringProperty] = Field(default=None, alias="SearchAndReplaceForUrls")
    suffix_for_tracking_templates: Optional[StrictStr] = Field(default=None, alias="SuffixForTrackingTemplates")
    search_and_replace_for_tracking_templates: Optional[ImportSearchAndReplaceForStringProperty] = Field(default=None, alias="SearchAndReplaceForTrackingTemplates")
    suffix_for_campaign_names: Optional[StrictStr] = Field(default=None, alias="SuffixForCampaignNames")
    search_and_replace_for_campaign_names: Optional[ImportSearchAndReplaceForStringProperty] = Field(default=None, alias="SearchAndReplaceForCampaignNames")
    search_and_replace_for_custom_parameters: Optional[ImportSearchAndReplaceForStringProperty] = Field(default=None, alias="SearchAndReplaceForCustomParameters")
    search_and_replace_for_final_url_suffix: Optional[ImportSearchAndReplaceForStringProperty] = Field(default=None, alias="SearchAndReplaceForFinalURLSuffix")
    pause_campaigns_without_supported_locations: Optional[StrictBool] = Field(default=None, alias="PauseCampaignsWithoutSupportedLocations")
    enable_parent_location_mapping: Optional[StrictBool] = Field(default=None, alias="EnableParentLocationMapping")
    associated_store_id: Optional[StrictStr] = Field(default=None, alias="AssociatedStoreId")
    raise_product_group_bids_to_minimum: Optional[StrictBool] = Field(default=None, alias="RaiseProductGroupBidsToMinimum")
    search_and_dsa_mixed_campaign_as_search_campaign: Optional[StrictBool] = Field(default=None, alias="SearchAndDsaMixedCampaignAsSearchCampaign")
    account_url_options: Optional[StrictBool] = Field(default=None, alias="AccountUrlOptions")
    enable_auto_currency_conversion: Optional[StrictBool] = Field(default=None, alias="EnableAutoCurrencyConversion")
    update_bidding_strategies: Optional[StrictBool] = Field(default=None, alias="UpdateBiddingStrategies")
    associated_uet_tag_id: Optional[StrictStr] = Field(default=None, alias="AssociatedUetTagId")
    auto_device_bid_optimization: Optional[StrictBool] = Field(default=None, alias="AutoDeviceBidOptimization")
    ad_schedule_use_searcher_timezone: Optional[StrictBool] = Field(default=None, alias="AdScheduleUseSearcherTimezone")
    pause_aimad_group_if_all_audience_criterion_not_imported: Optional[StrictBool] = Field(default=None, alias="PauseAIMAdGroupIfAllAudienceCriterionNotImported")
    rename_campaign_name_with_suffix: Optional[StrictBool] = Field(default=None, alias="RenameCampaignNameWithSuffix")
    update_ad_urls: Optional[StrictBool] = Field(default=None, alias="UpdateAdUrls")
    update_sitelink_urls: Optional[StrictBool] = Field(default=None, alias="UpdateSitelinkUrls")
    forward_compatibility_map: Optional[List[Optional[KeyValuePairOfstringAndstring]]] = Field(default=None, alias="ForwardCompatibilityMap")
    type: Optional[StrictStr] = Field(default='GoogleImportOption', alias="Type")
    __properties: ClassVar[List[str]] = ["NewEntities", "NewPausedCampaignsAndChildEntities", "NewActiveCampaignsAndChildEntities", "NewAdGroupsAndChildEntitiesForExistingCampaigns", "NewActiveAdsForExistingAdGroups", "NewKeywordsForExistingAdGroups", "NewNegativeKeywordsForExistingParents", "NewNegativeKeywordLists", "NewAccountNegativeKeywords", "PauseNewCampaigns", "NewKeywordUrls", "NewUrlOptions", "NewNegativeSites", "NewPausedAdsForExistingAdGroups", "NewLabels", "NewProductFilters", "NewLocationTargets", "NewAdSchedules", "NewDeviceTargets", "NewDemographicTargets", "NewAudienceTargets", "NewAppAdExtensions", "NewCallAdExtensions", "NewCalloutAdExtensions", "NewPriceAdExtensions", "NewLocationAdExtensions", "NewReviewAdExtensions", "NewSitelinkAdExtensions", "NewStructuredSnippetAdExtensions", "NewPromotionAdExtensions", "NewImageAdExtensions", "NewLogoAdExtensions", "NewLeadFormAdExtensions", "NewPageFeeds", "NewAdCustomizerFeeds", "NewBrandSuitability", "NewConversionGoals", "NewCarouselAd", "UpdateEntities", "UpdateCampaignBudgets", "UpdateBids", "UpdateNegativeKeywordLists", "UpdateAccountNegativeKeywords", "UpdateNegativeSites", "UpdateKeywordUrls", "UpdateUrlOptions", "UpdateCampaignNames", "UpdateLabels", "UpdateProductFilters", "UpdateConversionGoals", "UpdateLocationTargets", "UpdateAdSchedules", "UpdateDeviceTargets", "UpdateDemographicTargets", "UpdateCampaignAdGroupLanguages", "UpdateAudienceTargets", "UpdateAppAdExtensions", "UpdateCallAdExtensions", "UpdateCalloutAdExtensions", "UpdatePriceAdExtensions", "UpdateLocationAdExtensions", "UpdateReviewAdExtensions", "UpdateSitelinkAdExtensions", "UpdateStructuredSnippetAdExtensions", "UpdatePromotionAdExtensions", "UpdateImageAdExtensions", "UpdateLogoAdExtensions", "UpdateLeadFormAdExtensions", "UpdateStatusForCampaigns", "UpdateStatusForAdGroups", "UpdateStatusForAds", "UpdateStatusForKeywords", "UpdateAdGroupNetwork", "UpdatePageFeeds", "UpdateAdCustomizerFeeds", "UpdateBrandSuitability", "UpdateAdCustomizerAttributes", "DeleteRemovedEntities", "RaiseBidsToMinimum", "RaiseCampaignBudgetsToMinimum", "AdjustmentForCampaignBudgets", "AdjustmentForBids", "SuffixForUrls", "SearchAndReplaceForUrls", "SuffixForTrackingTemplates", "SearchAndReplaceForTrackingTemplates", "SuffixForCampaignNames", "SearchAndReplaceForCampaignNames", "SearchAndReplaceForCustomParameters", "SearchAndReplaceForFinalURLSuffix", "PauseCampaignsWithoutSupportedLocations", "EnableParentLocationMapping", "AssociatedStoreId", "RaiseProductGroupBidsToMinimum", "SearchAndDsaMixedCampaignAsSearchCampaign", "AccountUrlOptions", "EnableAutoCurrencyConversion", "UpdateBiddingStrategies", "AssociatedUetTagId", "AutoDeviceBidOptimization", "AdScheduleUseSearcherTimezone", "PauseAIMAdGroupIfAllAudienceCriterionNotImported", "RenameCampaignNameWithSuffix", "UpdateAdUrls", "UpdateSitelinkUrls", "ForwardCompatibilityMap", "Type"]

    model_config = ConfigDict(
        populate_by_name=True,
        validate_assignment=True,
        protected_namespaces=(),
    )
	
    def to_json(self) -> str:
        """Returns the JSON representation of the model using alias"""
        # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
        return json.dumps(self.to_dict())
	
    @classmethod
    def from_json(cls, json_str: str) -> Optional[Self]:
        """Create an instance of GoogleImportOption from a JSON string"""
        return cls.from_dict(json.loads(json_str))
	

    def to_dict(self) -> Dict[str, Any]:
        """Return the dictionary representation of the model using alias.

        This has the following differences from calling pydantic's
        `self.model_dump(by_alias=True)`:

        * `None` is only added to the output dict for nullable fields that
          were set at model initialization. Other fields with value `None`
          are ignored.
        """
        excluded_fields: Set[str] = set([
        ])

        _dict = self.model_dump(
            by_alias=True,
            exclude=excluded_fields,
            exclude_none=True,
        )
        # override the default output from pydantic by calling `to_dict()` of search_and_replace_for_urls
        if self.search_and_replace_for_urls:
            _dict['SearchAndReplaceForUrls'] = self.search_and_replace_for_urls.to_dict()
        # override the default output from pydantic by calling `to_dict()` of search_and_replace_for_tracking_templates
        if self.search_and_replace_for_tracking_templates:
            _dict['SearchAndReplaceForTrackingTemplates'] = self.search_and_replace_for_tracking_templates.to_dict()
        # override the default output from pydantic by calling `to_dict()` of search_and_replace_for_campaign_names
        if self.search_and_replace_for_campaign_names:
            _dict['SearchAndReplaceForCampaignNames'] = self.search_and_replace_for_campaign_names.to_dict()
        # override the default output from pydantic by calling `to_dict()` of search_and_replace_for_custom_parameters
        if self.search_and_replace_for_custom_parameters:
            _dict['SearchAndReplaceForCustomParameters'] = self.search_and_replace_for_custom_parameters.to_dict()
        # override the default output from pydantic by calling `to_dict()` of search_and_replace_for_final_url_suffix
        if self.search_and_replace_for_final_url_suffix:
            _dict['SearchAndReplaceForFinalURLSuffix'] = self.search_and_replace_for_final_url_suffix.to_dict()
        # override the default output from pydantic by calling `to_dict()` of each item in forward_compatibility_map (list)
        _items = []
        if self.forward_compatibility_map:
            for _item_forward_compatibility_map in self.forward_compatibility_map:
                if _item_forward_compatibility_map:
                    _items.append(_item_forward_compatibility_map.to_dict())
            _dict['ForwardCompatibilityMap'] = _items
        # set to None if new_entities (nullable) is None
        # and model_fields_set contains the field
        if self.new_entities is None and "new_entities" in self.model_fields_set:
            _dict['NewEntities'] = None

        # set to None if new_paused_campaigns_and_child_entities (nullable) is None
        # and model_fields_set contains the field
        if self.new_paused_campaigns_and_child_entities is None and "new_paused_campaigns_and_child_entities" in self.model_fields_set:
            _dict['NewPausedCampaignsAndChildEntities'] = None

        # set to None if new_active_campaigns_and_child_entities (nullable) is None
        # and model_fields_set contains the field
        if self.new_active_campaigns_and_child_entities is None and "new_active_campaigns_and_child_entities" in self.model_fields_set:
            _dict['NewActiveCampaignsAndChildEntities'] = None

        # set to None if new_ad_groups_and_child_entities_for_existing_campaigns (nullable) is None
        # and model_fields_set contains the field
        if self.new_ad_groups_and_child_entities_for_existing_campaigns is None and "new_ad_groups_and_child_entities_for_existing_campaigns" in self.model_fields_set:
            _dict['NewAdGroupsAndChildEntitiesForExistingCampaigns'] = None

        # set to None if new_active_ads_for_existing_ad_groups (nullable) is None
        # and model_fields_set contains the field
        if self.new_active_ads_for_existing_ad_groups is None and "new_active_ads_for_existing_ad_groups" in self.model_fields_set:
            _dict['NewActiveAdsForExistingAdGroups'] = None

        # set to None if new_keywords_for_existing_ad_groups (nullable) is None
        # and model_fields_set contains the field
        if self.new_keywords_for_existing_ad_groups is None and "new_keywords_for_existing_ad_groups" in self.model_fields_set:
            _dict['NewKeywordsForExistingAdGroups'] = None

        # set to None if new_negative_keywords_for_existing_parents (nullable) is None
        # and model_fields_set contains the field
        if self.new_negative_keywords_for_existing_parents is None and "new_negative_keywords_for_existing_parents" in self.model_fields_set:
            _dict['NewNegativeKeywordsForExistingParents'] = None

        # set to None if new_negative_keyword_lists (nullable) is None
        # and model_fields_set contains the field
        if self.new_negative_keyword_lists is None and "new_negative_keyword_lists" in self.model_fields_set:
            _dict['NewNegativeKeywordLists'] = None

        # set to None if new_account_negative_keywords (nullable) is None
        # and model_fields_set contains the field
        if self.new_account_negative_keywords is None and "new_account_negative_keywords" in self.model_fields_set:
            _dict['NewAccountNegativeKeywords'] = None

        # set to None if pause_new_campaigns (nullable) is None
        # and model_fields_set contains the field
        if self.pause_new_campaigns is None and "pause_new_campaigns" in self.model_fields_set:
            _dict['PauseNewCampaigns'] = None

        # set to None if new_keyword_urls (nullable) is None
        # and model_fields_set contains the field
        if self.new_keyword_urls is None and "new_keyword_urls" in self.model_fields_set:
            _dict['NewKeywordUrls'] = None

        # set to None if new_url_options (nullable) is None
        # and model_fields_set contains the field
        if self.new_url_options is None and "new_url_options" in self.model_fields_set:
            _dict['NewUrlOptions'] = None

        # set to None if new_negative_sites (nullable) is None
        # and model_fields_set contains the field
        if self.new_negative_sites is None and "new_negative_sites" in self.model_fields_set:
            _dict['NewNegativeSites'] = None

        # set to None if new_paused_ads_for_existing_ad_groups (nullable) is None
        # and model_fields_set contains the field
        if self.new_paused_ads_for_existing_ad_groups is None and "new_paused_ads_for_existing_ad_groups" in self.model_fields_set:
            _dict['NewPausedAdsForExistingAdGroups'] = None

        # set to None if new_labels (nullable) is None
        # and model_fields_set contains the field
        if self.new_labels is None and "new_labels" in self.model_fields_set:
            _dict['NewLabels'] = None

        # set to None if new_product_filters (nullable) is None
        # and model_fields_set contains the field
        if self.new_product_filters is None and "new_product_filters" in self.model_fields_set:
            _dict['NewProductFilters'] = None

        # set to None if new_location_targets (nullable) is None
        # and model_fields_set contains the field
        if self.new_location_targets is None and "new_location_targets" in self.model_fields_set:
            _dict['NewLocationTargets'] = None

        # set to None if new_ad_schedules (nullable) is None
        # and model_fields_set contains the field
        if self.new_ad_schedules is None and "new_ad_schedules" in self.model_fields_set:
            _dict['NewAdSchedules'] = None

        # set to None if new_device_targets (nullable) is None
        # and model_fields_set contains the field
        if self.new_device_targets is None and "new_device_targets" in self.model_fields_set:
            _dict['NewDeviceTargets'] = None

        # set to None if new_demographic_targets (nullable) is None
        # and model_fields_set contains the field
        if self.new_demographic_targets is None and "new_demographic_targets" in self.model_fields_set:
            _dict['NewDemographicTargets'] = None

        # set to None if new_audience_targets (nullable) is None
        # and model_fields_set contains the field
        if self.new_audience_targets is None and "new_audience_targets" in self.model_fields_set:
            _dict['NewAudienceTargets'] = None

        # set to None if new_app_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_app_ad_extensions is None and "new_app_ad_extensions" in self.model_fields_set:
            _dict['NewAppAdExtensions'] = None

        # set to None if new_call_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_call_ad_extensions is None and "new_call_ad_extensions" in self.model_fields_set:
            _dict['NewCallAdExtensions'] = None

        # set to None if new_callout_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_callout_ad_extensions is None and "new_callout_ad_extensions" in self.model_fields_set:
            _dict['NewCalloutAdExtensions'] = None

        # set to None if new_price_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_price_ad_extensions is None and "new_price_ad_extensions" in self.model_fields_set:
            _dict['NewPriceAdExtensions'] = None

        # set to None if new_location_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_location_ad_extensions is None and "new_location_ad_extensions" in self.model_fields_set:
            _dict['NewLocationAdExtensions'] = None

        # set to None if new_review_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_review_ad_extensions is None and "new_review_ad_extensions" in self.model_fields_set:
            _dict['NewReviewAdExtensions'] = None

        # set to None if new_sitelink_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_sitelink_ad_extensions is None and "new_sitelink_ad_extensions" in self.model_fields_set:
            _dict['NewSitelinkAdExtensions'] = None

        # set to None if new_structured_snippet_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_structured_snippet_ad_extensions is None and "new_structured_snippet_ad_extensions" in self.model_fields_set:
            _dict['NewStructuredSnippetAdExtensions'] = None

        # set to None if new_promotion_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_promotion_ad_extensions is None and "new_promotion_ad_extensions" in self.model_fields_set:
            _dict['NewPromotionAdExtensions'] = None

        # set to None if new_image_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_image_ad_extensions is None and "new_image_ad_extensions" in self.model_fields_set:
            _dict['NewImageAdExtensions'] = None

        # set to None if new_logo_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_logo_ad_extensions is None and "new_logo_ad_extensions" in self.model_fields_set:
            _dict['NewLogoAdExtensions'] = None

        # set to None if new_lead_form_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.new_lead_form_ad_extensions is None and "new_lead_form_ad_extensions" in self.model_fields_set:
            _dict['NewLeadFormAdExtensions'] = None

        # set to None if new_page_feeds (nullable) is None
        # and model_fields_set contains the field
        if self.new_page_feeds is None and "new_page_feeds" in self.model_fields_set:
            _dict['NewPageFeeds'] = None

        # set to None if new_ad_customizer_feeds (nullable) is None
        # and model_fields_set contains the field
        if self.new_ad_customizer_feeds is None and "new_ad_customizer_feeds" in self.model_fields_set:
            _dict['NewAdCustomizerFeeds'] = None

        # set to None if new_brand_suitability (nullable) is None
        # and model_fields_set contains the field
        if self.new_brand_suitability is None and "new_brand_suitability" in self.model_fields_set:
            _dict['NewBrandSuitability'] = None

        # set to None if new_conversion_goals (nullable) is None
        # and model_fields_set contains the field
        if self.new_conversion_goals is None and "new_conversion_goals" in self.model_fields_set:
            _dict['NewConversionGoals'] = None

        # set to None if new_carousel_ad (nullable) is None
        # and model_fields_set contains the field
        if self.new_carousel_ad is None and "new_carousel_ad" in self.model_fields_set:
            _dict['NewCarouselAd'] = None

        # set to None if update_entities (nullable) is None
        # and model_fields_set contains the field
        if self.update_entities is None and "update_entities" in self.model_fields_set:
            _dict['UpdateEntities'] = None

        # set to None if update_campaign_budgets (nullable) is None
        # and model_fields_set contains the field
        if self.update_campaign_budgets is None and "update_campaign_budgets" in self.model_fields_set:
            _dict['UpdateCampaignBudgets'] = None

        # set to None if update_bids (nullable) is None
        # and model_fields_set contains the field
        if self.update_bids is None and "update_bids" in self.model_fields_set:
            _dict['UpdateBids'] = None

        # set to None if update_negative_keyword_lists (nullable) is None
        # and model_fields_set contains the field
        if self.update_negative_keyword_lists is None and "update_negative_keyword_lists" in self.model_fields_set:
            _dict['UpdateNegativeKeywordLists'] = None

        # set to None if update_account_negative_keywords (nullable) is None
        # and model_fields_set contains the field
        if self.update_account_negative_keywords is None and "update_account_negative_keywords" in self.model_fields_set:
            _dict['UpdateAccountNegativeKeywords'] = None

        # set to None if update_negative_sites (nullable) is None
        # and model_fields_set contains the field
        if self.update_negative_sites is None and "update_negative_sites" in self.model_fields_set:
            _dict['UpdateNegativeSites'] = None

        # set to None if update_keyword_urls (nullable) is None
        # and model_fields_set contains the field
        if self.update_keyword_urls is None and "update_keyword_urls" in self.model_fields_set:
            _dict['UpdateKeywordUrls'] = None

        # set to None if update_url_options (nullable) is None
        # and model_fields_set contains the field
        if self.update_url_options is None and "update_url_options" in self.model_fields_set:
            _dict['UpdateUrlOptions'] = None

        # set to None if update_campaign_names (nullable) is None
        # and model_fields_set contains the field
        if self.update_campaign_names is None and "update_campaign_names" in self.model_fields_set:
            _dict['UpdateCampaignNames'] = None

        # set to None if update_labels (nullable) is None
        # and model_fields_set contains the field
        if self.update_labels is None and "update_labels" in self.model_fields_set:
            _dict['UpdateLabels'] = None

        # set to None if update_product_filters (nullable) is None
        # and model_fields_set contains the field
        if self.update_product_filters is None and "update_product_filters" in self.model_fields_set:
            _dict['UpdateProductFilters'] = None

        # set to None if update_conversion_goals (nullable) is None
        # and model_fields_set contains the field
        if self.update_conversion_goals is None and "update_conversion_goals" in self.model_fields_set:
            _dict['UpdateConversionGoals'] = None

        # set to None if update_location_targets (nullable) is None
        # and model_fields_set contains the field
        if self.update_location_targets is None and "update_location_targets" in self.model_fields_set:
            _dict['UpdateLocationTargets'] = None

        # set to None if update_ad_schedules (nullable) is None
        # and model_fields_set contains the field
        if self.update_ad_schedules is None and "update_ad_schedules" in self.model_fields_set:
            _dict['UpdateAdSchedules'] = None

        # set to None if update_device_targets (nullable) is None
        # and model_fields_set contains the field
        if self.update_device_targets is None and "update_device_targets" in self.model_fields_set:
            _dict['UpdateDeviceTargets'] = None

        # set to None if update_demographic_targets (nullable) is None
        # and model_fields_set contains the field
        if self.update_demographic_targets is None and "update_demographic_targets" in self.model_fields_set:
            _dict['UpdateDemographicTargets'] = None

        # set to None if update_campaign_ad_group_languages (nullable) is None
        # and model_fields_set contains the field
        if self.update_campaign_ad_group_languages is None and "update_campaign_ad_group_languages" in self.model_fields_set:
            _dict['UpdateCampaignAdGroupLanguages'] = None

        # set to None if update_audience_targets (nullable) is None
        # and model_fields_set contains the field
        if self.update_audience_targets is None and "update_audience_targets" in self.model_fields_set:
            _dict['UpdateAudienceTargets'] = None

        # set to None if update_app_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_app_ad_extensions is None and "update_app_ad_extensions" in self.model_fields_set:
            _dict['UpdateAppAdExtensions'] = None

        # set to None if update_call_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_call_ad_extensions is None and "update_call_ad_extensions" in self.model_fields_set:
            _dict['UpdateCallAdExtensions'] = None

        # set to None if update_callout_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_callout_ad_extensions is None and "update_callout_ad_extensions" in self.model_fields_set:
            _dict['UpdateCalloutAdExtensions'] = None

        # set to None if update_price_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_price_ad_extensions is None and "update_price_ad_extensions" in self.model_fields_set:
            _dict['UpdatePriceAdExtensions'] = None

        # set to None if update_location_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_location_ad_extensions is None and "update_location_ad_extensions" in self.model_fields_set:
            _dict['UpdateLocationAdExtensions'] = None

        # set to None if update_review_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_review_ad_extensions is None and "update_review_ad_extensions" in self.model_fields_set:
            _dict['UpdateReviewAdExtensions'] = None

        # set to None if update_sitelink_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_sitelink_ad_extensions is None and "update_sitelink_ad_extensions" in self.model_fields_set:
            _dict['UpdateSitelinkAdExtensions'] = None

        # set to None if update_structured_snippet_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_structured_snippet_ad_extensions is None and "update_structured_snippet_ad_extensions" in self.model_fields_set:
            _dict['UpdateStructuredSnippetAdExtensions'] = None

        # set to None if update_promotion_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_promotion_ad_extensions is None and "update_promotion_ad_extensions" in self.model_fields_set:
            _dict['UpdatePromotionAdExtensions'] = None

        # set to None if update_image_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_image_ad_extensions is None and "update_image_ad_extensions" in self.model_fields_set:
            _dict['UpdateImageAdExtensions'] = None

        # set to None if update_logo_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_logo_ad_extensions is None and "update_logo_ad_extensions" in self.model_fields_set:
            _dict['UpdateLogoAdExtensions'] = None

        # set to None if update_lead_form_ad_extensions (nullable) is None
        # and model_fields_set contains the field
        if self.update_lead_form_ad_extensions is None and "update_lead_form_ad_extensions" in self.model_fields_set:
            _dict['UpdateLeadFormAdExtensions'] = None

        # set to None if update_status_for_campaigns (nullable) is None
        # and model_fields_set contains the field
        if self.update_status_for_campaigns is None and "update_status_for_campaigns" in self.model_fields_set:
            _dict['UpdateStatusForCampaigns'] = None

        # set to None if update_status_for_ad_groups (nullable) is None
        # and model_fields_set contains the field
        if self.update_status_for_ad_groups is None and "update_status_for_ad_groups" in self.model_fields_set:
            _dict['UpdateStatusForAdGroups'] = None

        # set to None if update_status_for_ads (nullable) is None
        # and model_fields_set contains the field
        if self.update_status_for_ads is None and "update_status_for_ads" in self.model_fields_set:
            _dict['UpdateStatusForAds'] = None

        # set to None if update_status_for_keywords (nullable) is None
        # and model_fields_set contains the field
        if self.update_status_for_keywords is None and "update_status_for_keywords" in self.model_fields_set:
            _dict['UpdateStatusForKeywords'] = None

        # set to None if update_ad_group_network (nullable) is None
        # and model_fields_set contains the field
        if self.update_ad_group_network is None and "update_ad_group_network" in self.model_fields_set:
            _dict['UpdateAdGroupNetwork'] = None

        # set to None if update_page_feeds (nullable) is None
        # and model_fields_set contains the field
        if self.update_page_feeds is None and "update_page_feeds" in self.model_fields_set:
            _dict['UpdatePageFeeds'] = None

        # set to None if update_ad_customizer_feeds (nullable) is None
        # and model_fields_set contains the field
        if self.update_ad_customizer_feeds is None and "update_ad_customizer_feeds" in self.model_fields_set:
            _dict['UpdateAdCustomizerFeeds'] = None

        # set to None if update_brand_suitability (nullable) is None
        # and model_fields_set contains the field
        if self.update_brand_suitability is None and "update_brand_suitability" in self.model_fields_set:
            _dict['UpdateBrandSuitability'] = None

        # set to None if update_ad_customizer_attributes (nullable) is None
        # and model_fields_set contains the field
        if self.update_ad_customizer_attributes is None and "update_ad_customizer_attributes" in self.model_fields_set:
            _dict['UpdateAdCustomizerAttributes'] = None

        # set to None if delete_removed_entities (nullable) is None
        # and model_fields_set contains the field
        if self.delete_removed_entities is None and "delete_removed_entities" in self.model_fields_set:
            _dict['DeleteRemovedEntities'] = None

        # set to None if raise_bids_to_minimum (nullable) is None
        # and model_fields_set contains the field
        if self.raise_bids_to_minimum is None and "raise_bids_to_minimum" in self.model_fields_set:
            _dict['RaiseBidsToMinimum'] = None

        # set to None if raise_campaign_budgets_to_minimum (nullable) is None
        # and model_fields_set contains the field
        if self.raise_campaign_budgets_to_minimum is None and "raise_campaign_budgets_to_minimum" in self.model_fields_set:
            _dict['RaiseCampaignBudgetsToMinimum'] = None

        # set to None if adjustment_for_campaign_budgets (nullable) is None
        # and model_fields_set contains the field
        if self.adjustment_for_campaign_budgets is None and "adjustment_for_campaign_budgets" in self.model_fields_set:
            _dict['AdjustmentForCampaignBudgets'] = None

        # set to None if adjustment_for_bids (nullable) is None
        # and model_fields_set contains the field
        if self.adjustment_for_bids is None and "adjustment_for_bids" in self.model_fields_set:
            _dict['AdjustmentForBids'] = None

        # set to None if suffix_for_urls (nullable) is None
        # and model_fields_set contains the field
        if self.suffix_for_urls is None and "suffix_for_urls" in self.model_fields_set:
            _dict['SuffixForUrls'] = None

        # set to None if search_and_replace_for_urls (nullable) is None
        # and model_fields_set contains the field
        if self.search_and_replace_for_urls is None and "search_and_replace_for_urls" in self.model_fields_set:
            _dict['SearchAndReplaceForUrls'] = None

        # set to None if suffix_for_tracking_templates (nullable) is None
        # and model_fields_set contains the field
        if self.suffix_for_tracking_templates is None and "suffix_for_tracking_templates" in self.model_fields_set:
            _dict['SuffixForTrackingTemplates'] = None

        # set to None if search_and_replace_for_tracking_templates (nullable) is None
        # and model_fields_set contains the field
        if self.search_and_replace_for_tracking_templates is None and "search_and_replace_for_tracking_templates" in self.model_fields_set:
            _dict['SearchAndReplaceForTrackingTemplates'] = None

        # set to None if suffix_for_campaign_names (nullable) is None
        # and model_fields_set contains the field
        if self.suffix_for_campaign_names is None and "suffix_for_campaign_names" in self.model_fields_set:
            _dict['SuffixForCampaignNames'] = None

        # set to None if search_and_replace_for_campaign_names (nullable) is None
        # and model_fields_set contains the field
        if self.search_and_replace_for_campaign_names is None and "search_and_replace_for_campaign_names" in self.model_fields_set:
            _dict['SearchAndReplaceForCampaignNames'] = None

        # set to None if search_and_replace_for_custom_parameters (nullable) is None
        # and model_fields_set contains the field
        if self.search_and_replace_for_custom_parameters is None and "search_and_replace_for_custom_parameters" in self.model_fields_set:
            _dict['SearchAndReplaceForCustomParameters'] = None

        # set to None if search_and_replace_for_final_url_suffix (nullable) is None
        # and model_fields_set contains the field
        if self.search_and_replace_for_final_url_suffix is None and "search_and_replace_for_final_url_suffix" in self.model_fields_set:
            _dict['SearchAndReplaceForFinalURLSuffix'] = None

        # set to None if pause_campaigns_without_supported_locations (nullable) is None
        # and model_fields_set contains the field
        if self.pause_campaigns_without_supported_locations is None and "pause_campaigns_without_supported_locations" in self.model_fields_set:
            _dict['PauseCampaignsWithoutSupportedLocations'] = None

        # set to None if enable_parent_location_mapping (nullable) is None
        # and model_fields_set contains the field
        if self.enable_parent_location_mapping is None and "enable_parent_location_mapping" in self.model_fields_set:
            _dict['EnableParentLocationMapping'] = None

        # set to None if associated_store_id (nullable) is None
        # and model_fields_set contains the field
        if self.associated_store_id is None and "associated_store_id" in self.model_fields_set:
            _dict['AssociatedStoreId'] = None

        # set to None if raise_product_group_bids_to_minimum (nullable) is None
        # and model_fields_set contains the field
        if self.raise_product_group_bids_to_minimum is None and "raise_product_group_bids_to_minimum" in self.model_fields_set:
            _dict['RaiseProductGroupBidsToMinimum'] = None

        # set to None if search_and_dsa_mixed_campaign_as_search_campaign (nullable) is None
        # and model_fields_set contains the field
        if self.search_and_dsa_mixed_campaign_as_search_campaign is None and "search_and_dsa_mixed_campaign_as_search_campaign" in self.model_fields_set:
            _dict['SearchAndDsaMixedCampaignAsSearchCampaign'] = None

        # set to None if account_url_options (nullable) is None
        # and model_fields_set contains the field
        if self.account_url_options is None and "account_url_options" in self.model_fields_set:
            _dict['AccountUrlOptions'] = None

        # set to None if enable_auto_currency_conversion (nullable) is None
        # and model_fields_set contains the field
        if self.enable_auto_currency_conversion is None and "enable_auto_currency_conversion" in self.model_fields_set:
            _dict['EnableAutoCurrencyConversion'] = None

        # set to None if update_bidding_strategies (nullable) is None
        # and model_fields_set contains the field
        if self.update_bidding_strategies is None and "update_bidding_strategies" in self.model_fields_set:
            _dict['UpdateBiddingStrategies'] = None

        # set to None if associated_uet_tag_id (nullable) is None
        # and model_fields_set contains the field
        if self.associated_uet_tag_id is None and "associated_uet_tag_id" in self.model_fields_set:
            _dict['AssociatedUetTagId'] = None

        # set to None if auto_device_bid_optimization (nullable) is None
        # and model_fields_set contains the field
        if self.auto_device_bid_optimization is None and "auto_device_bid_optimization" in self.model_fields_set:
            _dict['AutoDeviceBidOptimization'] = None

        # set to None if ad_schedule_use_searcher_timezone (nullable) is None
        # and model_fields_set contains the field
        if self.ad_schedule_use_searcher_timezone is None and "ad_schedule_use_searcher_timezone" in self.model_fields_set:
            _dict['AdScheduleUseSearcherTimezone'] = None

        # set to None if pause_aimad_group_if_all_audience_criterion_not_imported (nullable) is None
        # and model_fields_set contains the field
        if self.pause_aimad_group_if_all_audience_criterion_not_imported is None and "pause_aimad_group_if_all_audience_criterion_not_imported" in self.model_fields_set:
            _dict['PauseAIMAdGroupIfAllAudienceCriterionNotImported'] = None

        # set to None if rename_campaign_name_with_suffix (nullable) is None
        # and model_fields_set contains the field
        if self.rename_campaign_name_with_suffix is None and "rename_campaign_name_with_suffix" in self.model_fields_set:
            _dict['RenameCampaignNameWithSuffix'] = None

        # set to None if update_ad_urls (nullable) is None
        # and model_fields_set contains the field
        if self.update_ad_urls is None and "update_ad_urls" in self.model_fields_set:
            _dict['UpdateAdUrls'] = None

        # set to None if update_sitelink_urls (nullable) is None
        # and model_fields_set contains the field
        if self.update_sitelink_urls is None and "update_sitelink_urls" in self.model_fields_set:
            _dict['UpdateSitelinkUrls'] = None

        # set to None if forward_compatibility_map (nullable) is None
        # and model_fields_set contains the field
        if self.forward_compatibility_map is None and "forward_compatibility_map" in self.model_fields_set:
            _dict['ForwardCompatibilityMap'] = None

        # set to None if type (nullable) is None
        # and model_fields_set contains the field
        if self.type is None and "type" in self.model_fields_set:
            _dict['Type'] = None

        return _dict

    @classmethod
    def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
        """Create an instance of GoogleImportOption from a dict"""
        if obj is None:
            return None

        if not isinstance(obj, dict):
            return cls.model_validate(obj)

        _obj = cls.model_validate({
            "NewEntities": obj.get("NewEntities") if obj.get("NewEntities") is not None else None,
                        "NewPausedCampaignsAndChildEntities": obj.get("NewPausedCampaignsAndChildEntities") if obj.get("NewPausedCampaignsAndChildEntities") is not None else None,
                        "NewActiveCampaignsAndChildEntities": obj.get("NewActiveCampaignsAndChildEntities") if obj.get("NewActiveCampaignsAndChildEntities") is not None else None,
                        "NewAdGroupsAndChildEntitiesForExistingCampaigns": obj.get("NewAdGroupsAndChildEntitiesForExistingCampaigns") if obj.get("NewAdGroupsAndChildEntitiesForExistingCampaigns") is not None else None,
                        "NewActiveAdsForExistingAdGroups": obj.get("NewActiveAdsForExistingAdGroups") if obj.get("NewActiveAdsForExistingAdGroups") is not None else None,
                        "NewKeywordsForExistingAdGroups": obj.get("NewKeywordsForExistingAdGroups") if obj.get("NewKeywordsForExistingAdGroups") is not None else None,
                        "NewNegativeKeywordsForExistingParents": obj.get("NewNegativeKeywordsForExistingParents") if obj.get("NewNegativeKeywordsForExistingParents") is not None else None,
                        "NewNegativeKeywordLists": obj.get("NewNegativeKeywordLists") if obj.get("NewNegativeKeywordLists") is not None else None,
                        "NewAccountNegativeKeywords": obj.get("NewAccountNegativeKeywords") if obj.get("NewAccountNegativeKeywords") is not None else None,
                        "PauseNewCampaigns": obj.get("PauseNewCampaigns") if obj.get("PauseNewCampaigns") is not None else None,
                        "NewKeywordUrls": obj.get("NewKeywordUrls") if obj.get("NewKeywordUrls") is not None else None,
                        "NewUrlOptions": obj.get("NewUrlOptions") if obj.get("NewUrlOptions") is not None else None,
                        "NewNegativeSites": obj.get("NewNegativeSites") if obj.get("NewNegativeSites") is not None else None,
                        "NewPausedAdsForExistingAdGroups": obj.get("NewPausedAdsForExistingAdGroups") if obj.get("NewPausedAdsForExistingAdGroups") is not None else None,
                        "NewLabels": obj.get("NewLabels") if obj.get("NewLabels") is not None else None,
                        "NewProductFilters": obj.get("NewProductFilters") if obj.get("NewProductFilters") is not None else None,
                        "NewLocationTargets": obj.get("NewLocationTargets") if obj.get("NewLocationTargets") is not None else None,
                        "NewAdSchedules": obj.get("NewAdSchedules") if obj.get("NewAdSchedules") is not None else None,
                        "NewDeviceTargets": obj.get("NewDeviceTargets") if obj.get("NewDeviceTargets") is not None else None,
                        "NewDemographicTargets": obj.get("NewDemographicTargets") if obj.get("NewDemographicTargets") is not None else None,
                        "NewAudienceTargets": obj.get("NewAudienceTargets") if obj.get("NewAudienceTargets") is not None else None,
                        "NewAppAdExtensions": obj.get("NewAppAdExtensions") if obj.get("NewAppAdExtensions") is not None else None,
                        "NewCallAdExtensions": obj.get("NewCallAdExtensions") if obj.get("NewCallAdExtensions") is not None else None,
                        "NewCalloutAdExtensions": obj.get("NewCalloutAdExtensions") if obj.get("NewCalloutAdExtensions") is not None else None,
                        "NewPriceAdExtensions": obj.get("NewPriceAdExtensions") if obj.get("NewPriceAdExtensions") is not None else None,
                        "NewLocationAdExtensions": obj.get("NewLocationAdExtensions") if obj.get("NewLocationAdExtensions") is not None else None,
                        "NewReviewAdExtensions": obj.get("NewReviewAdExtensions") if obj.get("NewReviewAdExtensions") is not None else None,
                        "NewSitelinkAdExtensions": obj.get("NewSitelinkAdExtensions") if obj.get("NewSitelinkAdExtensions") is not None else None,
                        "NewStructuredSnippetAdExtensions": obj.get("NewStructuredSnippetAdExtensions") if obj.get("NewStructuredSnippetAdExtensions") is not None else None,
                        "NewPromotionAdExtensions": obj.get("NewPromotionAdExtensions") if obj.get("NewPromotionAdExtensions") is not None else None,
                        "NewImageAdExtensions": obj.get("NewImageAdExtensions") if obj.get("NewImageAdExtensions") is not None else None,
                        "NewLogoAdExtensions": obj.get("NewLogoAdExtensions") if obj.get("NewLogoAdExtensions") is not None else None,
                        "NewLeadFormAdExtensions": obj.get("NewLeadFormAdExtensions") if obj.get("NewLeadFormAdExtensions") is not None else None,
                        "NewPageFeeds": obj.get("NewPageFeeds") if obj.get("NewPageFeeds") is not None else None,
                        "NewAdCustomizerFeeds": obj.get("NewAdCustomizerFeeds") if obj.get("NewAdCustomizerFeeds") is not None else None,
                        "NewBrandSuitability": obj.get("NewBrandSuitability") if obj.get("NewBrandSuitability") is not None else None,
                        "NewConversionGoals": obj.get("NewConversionGoals") if obj.get("NewConversionGoals") is not None else None,
                        "NewCarouselAd": obj.get("NewCarouselAd") if obj.get("NewCarouselAd") is not None else None,
                        "UpdateEntities": obj.get("UpdateEntities") if obj.get("UpdateEntities") is not None else None,
                        "UpdateCampaignBudgets": obj.get("UpdateCampaignBudgets") if obj.get("UpdateCampaignBudgets") is not None else None,
                        "UpdateBids": obj.get("UpdateBids") if obj.get("UpdateBids") is not None else None,
                        "UpdateNegativeKeywordLists": obj.get("UpdateNegativeKeywordLists") if obj.get("UpdateNegativeKeywordLists") is not None else None,
                        "UpdateAccountNegativeKeywords": obj.get("UpdateAccountNegativeKeywords") if obj.get("UpdateAccountNegativeKeywords") is not None else None,
                        "UpdateNegativeSites": obj.get("UpdateNegativeSites") if obj.get("UpdateNegativeSites") is not None else None,
                        "UpdateKeywordUrls": obj.get("UpdateKeywordUrls") if obj.get("UpdateKeywordUrls") is not None else None,
                        "UpdateUrlOptions": obj.get("UpdateUrlOptions") if obj.get("UpdateUrlOptions") is not None else None,
                        "UpdateCampaignNames": obj.get("UpdateCampaignNames") if obj.get("UpdateCampaignNames") is not None else None,
                        "UpdateLabels": obj.get("UpdateLabels") if obj.get("UpdateLabels") is not None else None,
                        "UpdateProductFilters": obj.get("UpdateProductFilters") if obj.get("UpdateProductFilters") is not None else None,
                        "UpdateConversionGoals": obj.get("UpdateConversionGoals") if obj.get("UpdateConversionGoals") is not None else None,
                        "UpdateLocationTargets": obj.get("UpdateLocationTargets") if obj.get("UpdateLocationTargets") is not None else None,
                        "UpdateAdSchedules": obj.get("UpdateAdSchedules") if obj.get("UpdateAdSchedules") is not None else None,
                        "UpdateDeviceTargets": obj.get("UpdateDeviceTargets") if obj.get("UpdateDeviceTargets") is not None else None,
                        "UpdateDemographicTargets": obj.get("UpdateDemographicTargets") if obj.get("UpdateDemographicTargets") is not None else None,
                        "UpdateCampaignAdGroupLanguages": obj.get("UpdateCampaignAdGroupLanguages") if obj.get("UpdateCampaignAdGroupLanguages") is not None else None,
                        "UpdateAudienceTargets": obj.get("UpdateAudienceTargets") if obj.get("UpdateAudienceTargets") is not None else None,
                        "UpdateAppAdExtensions": obj.get("UpdateAppAdExtensions") if obj.get("UpdateAppAdExtensions") is not None else None,
                        "UpdateCallAdExtensions": obj.get("UpdateCallAdExtensions") if obj.get("UpdateCallAdExtensions") is not None else None,
                        "UpdateCalloutAdExtensions": obj.get("UpdateCalloutAdExtensions") if obj.get("UpdateCalloutAdExtensions") is not None else None,
                        "UpdatePriceAdExtensions": obj.get("UpdatePriceAdExtensions") if obj.get("UpdatePriceAdExtensions") is not None else None,
                        "UpdateLocationAdExtensions": obj.get("UpdateLocationAdExtensions") if obj.get("UpdateLocationAdExtensions") is not None else None,
                        "UpdateReviewAdExtensions": obj.get("UpdateReviewAdExtensions") if obj.get("UpdateReviewAdExtensions") is not None else None,
                        "UpdateSitelinkAdExtensions": obj.get("UpdateSitelinkAdExtensions") if obj.get("UpdateSitelinkAdExtensions") is not None else None,
                        "UpdateStructuredSnippetAdExtensions": obj.get("UpdateStructuredSnippetAdExtensions") if obj.get("UpdateStructuredSnippetAdExtensions") is not None else None,
                        "UpdatePromotionAdExtensions": obj.get("UpdatePromotionAdExtensions") if obj.get("UpdatePromotionAdExtensions") is not None else None,
                        "UpdateImageAdExtensions": obj.get("UpdateImageAdExtensions") if obj.get("UpdateImageAdExtensions") is not None else None,
                        "UpdateLogoAdExtensions": obj.get("UpdateLogoAdExtensions") if obj.get("UpdateLogoAdExtensions") is not None else None,
                        "UpdateLeadFormAdExtensions": obj.get("UpdateLeadFormAdExtensions") if obj.get("UpdateLeadFormAdExtensions") is not None else None,
                        "UpdateStatusForCampaigns": obj.get("UpdateStatusForCampaigns") if obj.get("UpdateStatusForCampaigns") is not None else None,
                        "UpdateStatusForAdGroups": obj.get("UpdateStatusForAdGroups") if obj.get("UpdateStatusForAdGroups") is not None else None,
                        "UpdateStatusForAds": obj.get("UpdateStatusForAds") if obj.get("UpdateStatusForAds") is not None else None,
                        "UpdateStatusForKeywords": obj.get("UpdateStatusForKeywords") if obj.get("UpdateStatusForKeywords") is not None else None,
                        "UpdateAdGroupNetwork": obj.get("UpdateAdGroupNetwork") if obj.get("UpdateAdGroupNetwork") is not None else None,
                        "UpdatePageFeeds": obj.get("UpdatePageFeeds") if obj.get("UpdatePageFeeds") is not None else None,
                        "UpdateAdCustomizerFeeds": obj.get("UpdateAdCustomizerFeeds") if obj.get("UpdateAdCustomizerFeeds") is not None else None,
                        "UpdateBrandSuitability": obj.get("UpdateBrandSuitability") if obj.get("UpdateBrandSuitability") is not None else None,
                        "UpdateAdCustomizerAttributes": obj.get("UpdateAdCustomizerAttributes") if obj.get("UpdateAdCustomizerAttributes") is not None else None,
                        "DeleteRemovedEntities": obj.get("DeleteRemovedEntities") if obj.get("DeleteRemovedEntities") is not None else None,
                        "RaiseBidsToMinimum": obj.get("RaiseBidsToMinimum") if obj.get("RaiseBidsToMinimum") is not None else None,
                        "RaiseCampaignBudgetsToMinimum": obj.get("RaiseCampaignBudgetsToMinimum") if obj.get("RaiseCampaignBudgetsToMinimum") is not None else None,
                        "AdjustmentForCampaignBudgets": obj.get("AdjustmentForCampaignBudgets") if obj.get("AdjustmentForCampaignBudgets") is not None else None,
                        "AdjustmentForBids": obj.get("AdjustmentForBids") if obj.get("AdjustmentForBids") is not None else None,
                        "SuffixForUrls": obj.get("SuffixForUrls") if obj.get("SuffixForUrls") is not None else None,
                        "SearchAndReplaceForUrls": ImportSearchAndReplaceForStringProperty.from_dict(obj["SearchAndReplaceForUrls"]) if obj.get("SearchAndReplaceForUrls") is not None else None,
                        "SuffixForTrackingTemplates": obj.get("SuffixForTrackingTemplates") if obj.get("SuffixForTrackingTemplates") is not None else None,
                        "SearchAndReplaceForTrackingTemplates": ImportSearchAndReplaceForStringProperty.from_dict(obj["SearchAndReplaceForTrackingTemplates"]) if obj.get("SearchAndReplaceForTrackingTemplates") is not None else None,
                        "SuffixForCampaignNames": obj.get("SuffixForCampaignNames") if obj.get("SuffixForCampaignNames") is not None else None,
                        "SearchAndReplaceForCampaignNames": ImportSearchAndReplaceForStringProperty.from_dict(obj["SearchAndReplaceForCampaignNames"]) if obj.get("SearchAndReplaceForCampaignNames") is not None else None,
                        "SearchAndReplaceForCustomParameters": ImportSearchAndReplaceForStringProperty.from_dict(obj["SearchAndReplaceForCustomParameters"]) if obj.get("SearchAndReplaceForCustomParameters") is not None else None,
                        "SearchAndReplaceForFinalURLSuffix": ImportSearchAndReplaceForStringProperty.from_dict(obj["SearchAndReplaceForFinalURLSuffix"]) if obj.get("SearchAndReplaceForFinalURLSuffix") is not None else None,
                        "PauseCampaignsWithoutSupportedLocations": obj.get("PauseCampaignsWithoutSupportedLocations") if obj.get("PauseCampaignsWithoutSupportedLocations") is not None else None,
                        "EnableParentLocationMapping": obj.get("EnableParentLocationMapping") if obj.get("EnableParentLocationMapping") is not None else None,
                        "AssociatedStoreId": obj.get("AssociatedStoreId") if obj.get("AssociatedStoreId") is not None else None,
                        "RaiseProductGroupBidsToMinimum": obj.get("RaiseProductGroupBidsToMinimum") if obj.get("RaiseProductGroupBidsToMinimum") is not None else None,
                        "SearchAndDsaMixedCampaignAsSearchCampaign": obj.get("SearchAndDsaMixedCampaignAsSearchCampaign") if obj.get("SearchAndDsaMixedCampaignAsSearchCampaign") is not None else None,
                        "AccountUrlOptions": obj.get("AccountUrlOptions") if obj.get("AccountUrlOptions") is not None else None,
                        "EnableAutoCurrencyConversion": obj.get("EnableAutoCurrencyConversion") if obj.get("EnableAutoCurrencyConversion") is not None else None,
                        "UpdateBiddingStrategies": obj.get("UpdateBiddingStrategies") if obj.get("UpdateBiddingStrategies") is not None else None,
                        "AssociatedUetTagId": obj.get("AssociatedUetTagId") if obj.get("AssociatedUetTagId") is not None else None,
                        "AutoDeviceBidOptimization": obj.get("AutoDeviceBidOptimization") if obj.get("AutoDeviceBidOptimization") is not None else None,
                        "AdScheduleUseSearcherTimezone": obj.get("AdScheduleUseSearcherTimezone") if obj.get("AdScheduleUseSearcherTimezone") is not None else None,
                        "PauseAIMAdGroupIfAllAudienceCriterionNotImported": obj.get("PauseAIMAdGroupIfAllAudienceCriterionNotImported") if obj.get("PauseAIMAdGroupIfAllAudienceCriterionNotImported") is not None else None,
                        "RenameCampaignNameWithSuffix": obj.get("RenameCampaignNameWithSuffix") if obj.get("RenameCampaignNameWithSuffix") is not None else None,
                        "UpdateAdUrls": obj.get("UpdateAdUrls") if obj.get("UpdateAdUrls") is not None else None,
                        "UpdateSitelinkUrls": obj.get("UpdateSitelinkUrls") if obj.get("UpdateSitelinkUrls") is not None else None,
                        "ForwardCompatibilityMap": [KeyValuePairOfstringAndstring.from_dict(_item) for _item in obj["ForwardCompatibilityMap"]] if obj.get("ForwardCompatibilityMap") is not None else None,
                        "Type": obj.get("Type") if obj.get("Type") is not None else 'GoogleImportOption'
        })
        return _obj
